(黑马程序员)数组转集合要点总结

来源:互联网 发布:bt软件种子文件 编辑:程序博客网 时间:2024/06/14 09:29

 数组容器本身提供的方法很少,所以有数组工具类Arrays,但是有时我们需要更多的方法,这时我们可以把数组转为集合来操作,此时我们用arrays里的asListT...a)方法,这就是数组转集合的好处:-----------可以使用集合的方法操作数组中的元素。

例如我们定义一数组int [] arr = {1,2,3};我们想知道里面有没有元素key,用arrays是无法完成的,我们自己定义方法

public static boolean myContains(String[] arr,String key){

for (int i = 0; i < arr.length; i++) {

if(arr[i].equals(key))

return true;

}

return false;

}

而如果我们把数组转为集合,那么久可以直接调用集合的contains()方法,变的简单直接。 List<String> list = Arrays.asList(arr);

boolean b1 = list.contains("cd");

有两点需要注意

1. 数组转为集合List<String> list = Arrays.asList(arr);是把数组变为集合的形式来操作,所以集合的改变都将是原数组的改变,所以集合的增删方法在这里是不能用的,因为他们会改变数组的长度,会报错UnsupportedOperationException异常。

2. 数组中的元素可以是对象,也可以是基本数据类型,但是集合中元素不可以是基本数据类型,所以当数组中是对象时,将直接把这些对象做为集合元素,当数组是基本类型时,将会把数组本身做为集合的元素,如

      int[] arr = {31,11,51,61};

List<int[]> list = Arrays.asList(arr);

System.out.println(list);

将输出的是arr的哈希码。

3.asList(数组)方法接受的可以是arr数组对象,也可是数组列表,如

List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");

此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素。