(79)Arrays工具类:集合或者普通数组的操作方法、集合和数组相互转换
一、public static String toString(char[] a)
返回指定数组的字符串表示形式。字符串表示形式由数组的列表组成,括在方括号([ ])中。相邻元素用字符“,”分割。
char [] ch= {'a','c','b','e'};
String s1= Arrays.toString(ch);
System.out.println(s1);
结果:[a, c, b, e]
二、public static List asList(T… a):将数组变成List集合。
返回一个受指定数组支持的固定大小的列表
String[] arr= {"abc","cc","kkkk"};
List<String> list1=Arrays.asList(arr);
sop(list1);
将数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素
比如:要判断字符串中是否含有“cc”,转换为集合就可以用集合中的方法
boolean bl=list1.contains(“cc”); 直接进行判断。避免再写循环语句。
注意:将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的。如果增删,则会发生
UnsupportedOperationException异常
如果数组中的元素都是对象,那么变成集合时,数组中的元素就成为集合中的元素存在。
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中元素的存在
int [] nums= {2,4,5};
List li=Arrays.asList(nums);
sop(li); 结果:[[I@15db9742]
Integer [] nums= {2,4,5};
List li=Arrays.asList(nums);
sop(li); 打印结果为:[2,4,5]
三、集合变为数组
T[] toArray(T[] a)
指定类型的数组到底定义多长呢?
当指定的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合size.
当指定类型的数组长度大于了集合的size,就不会新创建数组,而是使用传递进来的数组。
由此可知,应该创建一个刚刚好的数组最优
Collection<String> coll=new ArrayList<String>();
coll.add("abc");
coll.add("a");
coll.add("cc");
String[] str1=coll.toArray(new String[coll.size()]);
sop(Arrays.toString(arr));
将集合变成数组?
为了限定对元素的操作。