欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中包裝類和Arrays類的詳細(xì)介紹

 更新時(shí)間:2022年12月13日 15:51:01   作者:藍(lán)桉cyq  
Arrays針對(duì)于數(shù)組做操作的類,該類包含用于操作數(shù)組的各種方法(如排序和搜索),這篇文章主要給大家介紹了關(guān)于Java中包裝類和Arrays類的詳細(xì)介紹,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

包裝類

包裝類其實(shí)就是8種基本數(shù)據(jù)類型對(duì)應(yīng)的引用類型。

基本數(shù)據(jù)類型引用數(shù)據(jù)類型
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble
booleanBoolean

為什么需要包裝類?

Java為了實(shí)現(xiàn)一切皆對(duì)象,為8種基本類型提供了對(duì)應(yīng)的引用類型。

后面的集合和泛型其實(shí)也只能支持包裝類型,不支持基本數(shù)據(jù)類型。

自動(dòng)裝箱:

基本類型的數(shù)據(jù)和變量可以直接賦值給包裝類型的變量。

public static void main(String[] args) {
    int num1 = 10;

    // 自動(dòng)裝箱(將int基本數(shù)據(jù)類變量賦值給包裝類型變量)
    Integer res1 = num1;
    System.out.println(res1);
}

自動(dòng)拆箱:

包裝類型的變量可以直接賦值給基本數(shù)據(jù)類型的變量。

public static void main(String[] args) {
    Integer num2 = 100;

    // 自動(dòng)拆箱(將包裝類型變量賦值給基本類型變量)
    int res2 = num2;
    System.out.println(res2);
}

包裝類的特有功能:

包裝類的變量的默認(rèn)值可以是null,容錯(cuò)率更高, 而基本類型不可以。

public static void main(String[] args) {
    Integer num3 = null;
}

可以把基本類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型(用處不大)

  • 調(diào)用toString()方法得到字符串結(jié)果。
  • 或者調(diào)用Integer.toString(基本類型的數(shù)據(jù))。
public static void main(String[] args) {
    Integer number = 100;
    // 方式一
    String result1 = number.toString();
  	// 方式二
  	String result2 = Integer.toString(101);
    // 方式三: 最簡單常用
    String result3 = number + "";
  
    System.out.println(result1 + 1); // 1001
    System.out.println(result2 + 1); // 1011
    System.out.println(result3 + 2); // 1002
}

可以把字符串類型的數(shù)值轉(zhuǎn)換成真實(shí)的數(shù)據(jù)類型(非常有用)

  • teger.parseInt(“字符串類型的整數(shù)”)
  • Double.parseDouble(“字符串類型的小數(shù)”)。
public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串轉(zhuǎn)整數(shù)
    int intNum = Integer.parseInt(strNum1);
    // 字符串轉(zhuǎn)小數(shù)
    double doubleNum = Double.parseDouble(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

將字符串類型的數(shù)字轉(zhuǎn)為真實(shí)的數(shù)據(jù), 我們也可以調(diào)用包裝類的valueOf方法

public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串轉(zhuǎn)整數(shù)
    int intNum = Integer.valueOf(strNum1);
    // 字符串轉(zhuǎn)小數(shù)
    double doubleNum = Double.valueOf(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

小結(jié):

包裝類是什么,作用是什么?

基本數(shù)據(jù)類型對(duì)應(yīng)的引用類型,實(shí)現(xiàn)了一切皆對(duì)象。

后期集合和泛型不支持基本類型,只能使用包裝類。

包裝類有哪些特殊功能?

可以把基本類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型(用處不大)

可以把字符串類型的數(shù)值轉(zhuǎn)換成真實(shí)的數(shù)據(jù)類型(非常有用)

Arrays類

Arrays類的概述

數(shù)組操作工具類,專門用于操作數(shù)組元素的。

Arrays類的常用API

方法名說明
toString(類型[] a)返回?cái)?shù)組的內(nèi)容(字符串形式)
sort(類型[] a)對(duì)優(yōu)質(zhì)的數(shù)組默認(rèn)進(jìn)行升序排序
sort(類型[] a, Comparator<? super T> c)使用比較器對(duì)象自定義排序
binarySearch(int[] a, int key)二分搜索數(shù)組中的數(shù)據(jù),存在返回索引,不存在返回-1

toString方法

public static void main(String[] args) {
    int[] arr = {10, 20, 30, 40, 0, 100};

    // 返回?cái)?shù)組內(nèi)容
    String res = Arrays.toString(arr);
    System.out.println(res); // [10, 20, 30, 40, 0, 100]
}

sort方法

public static void main(String[] args) {
    int[] arr = {20, 10, 900, 40, 0, 100};

    // 升序排序
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr)); // [0, 10, 20, 40, 100, 900]
}

binarySearch方法, 二分查找法搜索數(shù)組中的數(shù)據(jù), 找到返回索引, 找不到返回-1

注意: 前提被查找的數(shù)組必須是排好序的

public static void main(String[] args) {
    int[] arr = {20, 10, 900, 40, 0, 100};
  
    // 升序排序
    Arrays.sort(arr);
    // 查找數(shù)組
    int index = Arrays.binarySearch(arr, 10);
    System.out.println(index); // 1
}

sort方法自定義規(guī)則:

sort方法第二個(gè)參數(shù)是Comparator, 設(shè)置Comparator接口對(duì)應(yīng)的比較器對(duì)象,可以來自己定制比較規(guī)則。

注意: 自定義比較器對(duì)象只支持引用型類型的排序

如果認(rèn)為左邊數(shù)據(jù)大于右邊數(shù)據(jù), 返回正整數(shù)

如果認(rèn)為左邊數(shù)據(jù)小于右邊數(shù)據(jù), 返回負(fù)整數(shù)

如果認(rèn)為左邊數(shù)據(jù)等于右邊數(shù)據(jù), 返回0

默認(rèn)的升序是o1 - o2; 降序是o2 - o1

public static void main(String[] args) {
    // 只支持引用類型, 因此定義包裝類數(shù)據(jù)類型 
    Integer[] arr = {10, 0, 30, 50, 100, 67};

    // 調(diào)用sort方法, 降序
    Arrays.sort(arr, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2 - o1;
        }
    });

    System.out.println(Arrays.toString(arr)); // [100, 67, 50, 30, 10, 0]
}

總結(jié)

到此這篇關(guān)于Java中包裝類和Arrays類的詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Java 包裝類和Arrays類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot Redis批量存取數(shù)據(jù)的操作

    SpringBoot Redis批量存取數(shù)據(jù)的操作

    這篇文章主要介紹了SpringBoot Redis批量存取數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • mybatis-plus自動(dòng)填充插入更新時(shí)間有8小時(shí)時(shí)差

    mybatis-plus自動(dòng)填充插入更新時(shí)間有8小時(shí)時(shí)差

    本文主要介紹了mybatis-plus自動(dòng)填充插入更新時(shí)間有8小時(shí)時(shí)差,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java TreeSet實(shí)現(xiàn)學(xué)生按年齡大小和姓名排序的方法示例

    Java TreeSet實(shí)現(xiàn)學(xué)生按年齡大小和姓名排序的方法示例

    這篇文章主要介紹了Java TreeSet實(shí)現(xiàn)學(xué)生按年齡大小和姓名排序的方法,涉及java類型轉(zhuǎn)換、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • springboot如何將http轉(zhuǎn)https

    springboot如何將http轉(zhuǎn)https

    這篇文章主要介紹了springboot如何將http轉(zhuǎn)https,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java實(shí)戰(zhàn)項(xiàng)目 圖書管理系統(tǒng)

    Java實(shí)戰(zhàn)項(xiàng)目 圖書管理系統(tǒng)

    這篇文章主要介紹了使用java SSM jsp mysql maven設(shè)計(jì)實(shí)現(xiàn)的精品圖書管理系統(tǒng),是一個(gè)很好的實(shí)例,對(duì)大家的學(xué)習(xí)和工作具有借鑒意義,建議收藏一下
    2021-09-09
  • Java集合之LinkedList源碼解析

    Java集合之LinkedList源碼解析

    這篇文章主要介紹了Java集合之LinkedList源碼解析,LinkedList和ArrayList數(shù)據(jù)結(jié)構(gòu)是完全不一樣的,ArrayList 底層是數(shù)組的結(jié)構(gòu),而 LinkedList 的底層則是鏈表的結(jié)構(gòu), 它可以進(jìn)行高效的插入和移除的操作,它基于的是一個(gè)雙向鏈表的結(jié)構(gòu),需要的朋友可以參考下
    2023-12-12
  • 阿里云OSS域名配置及簡單上傳的示例代碼

    阿里云OSS域名配置及簡單上傳的示例代碼

    這篇文章主要介紹了阿里云OSS域名配置及簡單上傳的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java JVM類加載機(jī)制解讀

    Java JVM類加載機(jī)制解讀

    JVM將class文件字節(jié)碼文件加載到內(nèi)存中, 并將這些靜態(tài)數(shù)據(jù)轉(zhuǎn)換成方法區(qū)中的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu),在堆(并不一定在堆中,HotSpot在方法區(qū)中)中生成一個(gè)代表這個(gè)類的java.lang.Class 對(duì)象,作為方法區(qū)類數(shù)據(jù)的訪問入口,接下來將詳細(xì)講解JVM類加載機(jī)制
    2021-11-11
  • 解決poi導(dǎo)出時(shí)單元格樣式被覆蓋問題

    解決poi導(dǎo)出時(shí)單元格樣式被覆蓋問題

    這篇文章主要介紹了解決poi導(dǎo)出時(shí)單元格樣式被覆蓋問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Android中比較常見的Java super關(guān)鍵字

    Android中比較常見的Java super關(guān)鍵字

    這篇文章主要為大家介紹了Android中比較常見的Java super關(guān)鍵字,具有一定的學(xué)習(xí)參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評(píng)論