黑马程序员技术交流社区

标题: 关于集合和数组的增删的一个疑问? [打印本页]

作者: 漫步人    时间: 2013-10-26 19:01
标题: 关于集合和数组的增删的一个疑问?
用集合框架工具类中的Collections.toArray()将集合变成数组后对其进行了限制(不能进行增删)
但是通过List<Integer> list=Arrays.asList(arr);将数组变成了集合,就应该有集合的特性,为什么呢?

作者: 李泰然    时间: 2013-10-26 20:48
1,将集合变成数组:为了限定对元素的操作。
    当指定类型的数组长度小于集合的size()时,那么该方法内部就会创建一个新的数组,长度为集合的size()。当指定类型的数组长度大于集合的size()时,就不会创建新的数组,所以创建一个刚刚好的数组是最优的。
2,将数组变成集合:可以使用集合的思想来操作数组中的元素。
    注意:将数组变成集合后,不可以使用集合的增删操作,因为数组的长度是固定的。可以使用的方法有:contains()、get()、index()、subList()等,如果进行增删操作,会发生UnsupportedOperationException()异常。
不知道这样可以帮助到你不……
作者: 张鹏    时间: 2013-10-26 20:54
哥们。这个问题只要看下源码就完全明白了!
作者: cuilitang    时间: 2013-10-27 20:50
兄弟,你真有意思...
我在Collections类里面找了一阵子,你说的方法在Collection接口中...
另外,数组长度是固定的,你本来就不能对数组元素进行增删啊...
顶多是重新初始化一下值...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2