MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

java集合类的笔记

Posted on 2008-10-28 22:11 leekiang 阅读(220) 评论(0)  编辑  收藏 所属分类: 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的使用及注意事项


只有注册用户登录后才能发表评论。


网站导航: