原文地址:http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/
1.把 Array转化成ArrayList:
Integer[] a=new Integer[5]; for (int i = 0; i < a.length; i++) { a[i]=i; } ArrayList<Integer> list=new ArrayList<>(Arrays.asList(a)); for (Integer is : list) { System.out.println(is); }
不可以用
List<String> list = Arrays.asList(arr);
因为Arrays.asList() 返回一个ArrayList,这个ArrayList 是Arrays的内部私有静态子类,不是 java.util.ArrayList
,而是 java.util.Arrays.ArrayList
。
2.检查一个数组是否包含某个值:
Integer[] a=new Integer[5]; for (int i = 0; i < a.length; i++) { a[i]=i; } boolean b=Arrays.asList(a).contains(2);
3.从一个list中移除某个值,不可以用计数的方法,因为随着元素的移除list的长度会改变,应该使用Iterator:
ArrayList<String> list = new ArrayList<String>(Arrays.asList("a", "b", "c", "d")); Iterator<String> iter = list.iterator(); while (iter.hasNext()) { String s = iter.next(); if (s.equals("a")) { iter.remove(); } }
4.处理大型数据时,LinkedList比ArrayList更有优势。