浅谈Arrays.asList()方法的使用_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 浅谈Arrays.asList()方法的使用

浅谈Arrays.asList()方法的使用

 2017/12/28 18:16:26  stupider  程序员俱乐部  我要评论(0)
  • 摘要:浅谈Arrays.asList()方法的使用首先,该方法是将数组转化为list。有以下几点需要注意:(1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新(3)不支持add和remove方法.在java语言中,把数组转换成List集合,有个很方便的方法就是List<String>list=Arrays.asList("a","b","c")
  • 标签:方法 使用 list 浅谈

class="postTitle">浅谈Arrays.asList()方法的使用

?

?

 首先,该方法是将数组转化为list。有以下几点需要注意:

  (1)该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)

  (2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新

  (3)不支持add和remove方法.

在java语言中,把数组转换成List集合,有个很方便的方法就是?List<String> list = Arrays.asList("a","b","c");

但你可能不知道这样得到的List它的长度是不能改变的。当你向这个List添加或删除一个元素时(例如?list.add("d");)程序就会抛出异常(java.lang.UnsupportedOperationException)。怎么会这样?!只需要看看asList()方法是怎么实现的就行了。

public static <T> List<T> asList(T... a) {
? ? ? ? return new ArrayList<>(a);
? ? }

当你看到这段代码时可能觉得没啥问题啊,不就是返回了一个ArrayList对象吗?问题就出在这里。这个ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList,显然它是Arrays类自己定义的一个内部类!这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。而AbstractList中的add()和remove()是直接抛出java.lang.UnsupportedOperationException异常的!

总结一下吧,如果你的List只是用来遍历,就用Arrays.asList()吧!如果你的List还要添加或删除元素,还是乖乖地new一个java.util.ArrayList,然后一个一个的添加元素吧!

发表评论
用户名: 匿名