(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));

将集合变成数组?
为了限定对元素的操作。

posted @ 2017-07-19 19:52  测试开发分享站  阅读(90)  评论(0编辑  收藏  举报