Java中包裝類和Arrays類的詳細(xì)介紹
包裝類
包裝類其實(shí)就是8種基本數(shù)據(jù)類型對(duì)應(yīng)的引用類型。
基本數(shù)據(jù)類型 | 引用數(shù)據(jù)類型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
為什么需要包裝類?
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ù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08mybatis-plus自動(dòng)填充插入更新時(shí)間有8小時(shí)時(shí)差
本文主要介紹了mybatis-plus自動(dòng)填充插入更新時(shí)間有8小時(shí)時(shí)差,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Java TreeSet實(shí)現(xiàn)學(xué)生按年齡大小和姓名排序的方法示例
這篇文章主要介紹了Java TreeSet實(shí)現(xiàn)學(xué)生按年齡大小和姓名排序的方法,涉及java類型轉(zhuǎn)換、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09springboot如何將http轉(zhuǎn)https
這篇文章主要介紹了springboot如何將http轉(zhuǎn)https,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Java實(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-09Android中比較常見的Java super關(guān)鍵字
這篇文章主要為大家介紹了Android中比較常見的Java super關(guān)鍵字,具有一定的學(xué)習(xí)參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01