java集合类的笔记

1,Set里不允许重复,常用的:
  HashSet就不说了。
  TreeSet里的元素是排过序的。自定义的类的对象默认只能存放一个,如果想放多个并且有排序,则要实现Comparable接口并加上那3个方法。详见: TreeSet自定义排序

2, arraylist 底层是由数组组成的,在java中为了通用迭代器,所以性能上有一定的损失,用迭代器还不如for循环快.
   迭代器用在 底层由双向指针链表构成的linkedlist 上,效率大大高于for循环。
如 果使用for循环遍历 底层由双向指针链表构成的linkedlist的话,他会每次都从头遍历一次,知道获取你给定的下标,然后开始下一次遍历,。越往后速度越慢。下标越大, 速度越慢。但是对于迭代器,他不是根据下标完成的遍历,每取得一个对象后,他会根据这个对象的尾部指针取得下一个对象的内存位置,直接从内存位置取出内 容,这一点是for循环所不及的。

http://blog.csdn.net/java2000_net/archive/2009/01/16/3796064.aspx

3,
List要使用removeAll(Collection coll)
对象需实现equals()和hashCode()方法

4,用Collections.sort排序时可以把Comparator接口作为第二个参数
Collections.sort(stuGrade_List, new Comparator() {
public int compare(Object o1, Object o2) {
double c1 = ((StuGrade) o1).getChinese(); //获得语文的成绩,是doubel型
double c2 = ((StuGrade) o2).getChinese();
  if(c1>c2){
return 1;
}                                     
else if(c1=c2){
return 0;
}
else return -1;
}
});



参考:
TreeMap的使用及注意事项

你可能感兴趣的:(java集合类的笔记)