Arrays類主要作用是什麼?
是操作數組的工具類,方法都是靜態的
其中:toString():將數組變成字符串形式輸出。
重要方法有
(一). 將數組轉化爲集合asList()
1)好處:
可以使用集合的思想和方法操作數組中的元素,contains(),get(),indexOf(),subList()
2)注意:
將數組變成集合,不可以使用集合的增刪方法,因爲數組的長度是固定的。add(),delete(),否則會發生UnsupportedOperationException。
3)轉化後元素變化情況:
3.1)如果數組中的元素爲引用類型,則轉化後作爲集合的對象存在
3.2)如果數組中的元素爲基本數據類型,則轉化後數組作爲集合的一個對象存在。
示例1:
import java.util.*;
class ArraysDemo1
{
public static void main(String args[])
{
int[] arr = {2,4,5};
System.out.println(Arrays.toString());
String[] arr = {"abc","cc","kkkk"};
List<String> list = Arrays.asList(arr);
sop("contains:"+list.contains("cc"));//轉換成集合後,可以運用集合的方法方便操作。
list.add("qq");//不能對數組轉換成的List集合進行增刪操作。否則會發生UnsupportedOperationException
sop(list);//結果爲abc,cc,kkkk,以元素形式輸出。
int[] nums = {2,4,5};
List<int[]> list1 = Arrays.asList(nums);
sop(list1);//結果爲數組的引用值,爲一個對象。
Integer[] in = {2,4,5};
List<Integer> list2 = Arrays.asList(in);
sop(list2);//結果爲2,4,5以元素的形式輸出。
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
(二). 如何把集合變成數組呢?
利用Collection接口中的方法toArray(new String[])
1)有什麼好處呢?
爲了限定對元素的操作,不需要進行增刪操作了。
2)變成數組的指定長度需要定義多長呢?
2.1)當指定類型的長度小於集合的size,則會重新分配大小爲集合size的數組大小
2.2)當指定類型的長度大於集合的size,則使用傳遞進來的數組,沒有元素的位置補零。
所以創建一個剛剛好長度的數組最優。
示例2:
import java.util.*;
class CollectionToArray
{
public static void main(String args[])
{
ArrayList<String> al = new ArrayList<String>();
al.add("sfdg");
al.add("fdg");
al.add("dg");
String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
}
}