1,在List使用中 listnew=list;和 listnew.addAll(list); 是不一样的
=是引用关系,listnew结构改变的时候list也改变了,而addAlll,listnew改变但是list结构不改变
总结list的方法:
List list = new List();
1、list.add()
在list中增加一个元素,如果只有list.add(Element el)则自动加在list的最后,并返回一个boolean值
而list.add(int index,element el)则表示在index的位置插入一个元素,无返回值。
2、list.addAll()
用法同上,有list.addAll(Collection c)和list.addAll(int index,collection c)两种,都返回一个
boolean值。collection类型扩展自java.util.Collection接口。
3、list.get(int index)
返回位置是index的一个元素值。
4、list.retainAll(Collection c)
获得所有c集合里面有的元素。
5、list.toArray()
把list的所有值返回到一个数组,list.toArray(T[] a) the runtime type of the returned array is
that of the specified array.不知道runtime怎么翻译。:(
6、list.subList(int fromIndex,int toIndex)
返回list位置fromIndex和toIndex之间的list。
7、list.clear()
remove all。
8、list.remove(Object o)
public E remove(int index)。//每次删除一个元素,后面的元素自动全部向前移动;
public boolean remove(Object o)//这个删除对象
1.倒过来遍历list
- for
(int i = list.size()-1; i > =0; i--) { - if
(((String) list.get(i)).startsWith("abcde")) { - list.remove(i);
- }
- }
2.每移除一个元素以后再把i移回来
- for
(int i = 0; i < list.size(); i++) { - if
(((String) list.get(i)).startsWith("abcde")) { - list.remove(i);
- i=i-1;
- }
- }
3.使用iterator.remove()方法删除
- for
(Iterator it = list.iterator(); it.hasNext();) { - String str = (String)it.next();
- if
(str.equals("chengang")){ - it.remove();
- }
- }
9、list.removeAll(Collection c)
删除list中所有符合c集合的元素,返回boolean
10、list.set(int index,Element el)
把位置为index的元素图还成el。返回先前的元素值。
11、list.contains(Object o)
如果list中包含o,则返回true,同样list.containsAll(Collection c)也是如此。
12、list.indexOf(Object o)
返回list中o的位置,为int类型。
13、list.isEmpty()
返回true如果list为空。
14、listIterator()
返回一个重复出现元素的list,list.listIterator(int index)指从index开始计算重复元素。
其他方法还有hashCode(),equals(Object o),lastIndexOf(Object o),size(),iterator(),就不重复写了。
1.List转换成为数组。(这里的List是实体是ArrayList)
具体用法:
List list = new ArrayList();
list.add("1");
list.add("2");
final int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);
2.数组转换成为List。
调用Arrays的asList方法.
具体用法:
String[] arr = new String[] {"1", "2"};
List list = Arrays.asList(arr);
-
// 自定义比较器:按书的价格排序 -
static class PriceComparator implements Comparator { -
public int compare(Object object1, Object object2) {// 实现接口中的方法 -
Book p1 = (Book) object1; // 强制转换 -
Book p2 = (Book) object2;
-
return new Double(p1.price).compareTo(new Double(p2.price)); -
-
} -
}