Java中包裝類和Arrays類的詳細(xì)介紹
包裝類
包裝類其實就是8種基本數(shù)據(jù)類型對應(yīng)的引用類型。
| 基本數(shù)據(jù)類型 | 引用數(shù)據(jù)類型 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| char | Character |
| float | Float |
| double | Double |
| boolean | Boolean |
為什么需要包裝類?
Java為了實現(xiàn)一切皆對象,為8種基本類型提供了對應(yīng)的引用類型。
后面的集合和泛型其實也只能支持包裝類型,不支持基本數(shù)據(jù)類型。
自動裝箱:
基本類型的數(shù)據(jù)和變量可以直接賦值給包裝類型的變量。
public static void main(String[] args) {
int num1 = 10;
// 自動裝箱(將int基本數(shù)據(jù)類變量賦值給包裝類型變量)
Integer res1 = num1;
System.out.println(res1);
}
自動拆箱:
包裝類型的變量可以直接賦值給基本數(shù)據(jù)類型的變量。
public static void main(String[] args) {
Integer num2 = 100;
// 自動拆箱(將包裝類型變量賦值給基本類型變量)
int res2 = num2;
System.out.println(res2);
}
包裝類的特有功能:
包裝類的變量的默認(rèn)值可以是null,容錯率更高, 而基本類型不可以。
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ù)據(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ù)據(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ù)類型對應(yīng)的引用類型,實現(xiàn)了一切皆對象。
后期集合和泛型不支持基本類型,只能使用包裝類。
包裝類有哪些特殊功能?
可以把基本類型的數(shù)據(jù)轉(zhuǎn)換成字符串類型(用處不大)
可以把字符串類型的數(shù)值轉(zhuǎn)換成真實的數(shù)據(jù)類型(非常有用)
Arrays類
Arrays類的概述
數(shù)組操作工具類,專門用于操作數(shù)組元素的。
Arrays類的常用API
| 方法名 | 說明 |
|---|---|
| toString(類型[] a) | 返回數(shù)組的內(nèi)容(字符串形式) |
| sort(類型[] a) | 對優(yōu)質(zhì)的數(shù)組默認(rèn)進(jìn)行升序排序 |
| sort(類型[] a, Comparator<? super T> c) | 使用比較器對象自定義排序 |
| binarySearch(int[] a, int key) | 二分搜索數(shù)組中的數(shù)據(jù),存在返回索引,不存在返回-1 |
toString方法
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 0, 100};
// 返回數(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方法第二個參數(shù)是Comparator, 設(shè)置Comparator接口對應(yīng)的比較器對象,可以來自己定制比較規(guī)則。
注意: 自定義比較器對象只支持引用型類型的排序
如果認(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ù)的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java TreeSet實現(xiàn)學(xué)生按年齡大小和姓名排序的方法示例
這篇文章主要介紹了Java TreeSet實現(xiàn)學(xué)生按年齡大小和姓名排序的方法,涉及java類型轉(zhuǎn)換、遍歷、比較等相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
springboot如何將http轉(zhuǎn)https
這篇文章主要介紹了springboot如何將http轉(zhuǎn)https,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Android中比較常見的Java super關(guān)鍵字
這篇文章主要為大家介紹了Android中比較常見的Java super關(guān)鍵字,具有一定的學(xué)習(xí)參考價值,感興趣的小伙伴們可以參考一下2016-01-01

