第8章 Java集合框架1

来源:互联网 发布:知乎 卡尔曼滤波 噪声 编辑:程序博客网 时间:2024/05/14 05:31

一、集合框架
1、Collection接口
通用:add 增加 remove 移除
2、hashset
①实现Collection接口
②不包含重复对象,
③无序
3、重写equal必须重写hashCode函数
一般source-》generate hashCode and equal 就可以直接生成重写代码。
equal对比先对比hashcode(hashcode不包含重复对象) 如果不同直接返回false 如果相同再进行下一步对比,提高了效率。

4、linkhashset
插入顺序有序、不是线程同步。
5、TreeSet
元素有序、线程不安全
6、迭代器 Iterator
迭代器迭代的过程会把hashset的值锁住,对Hashset进行操作的时候会出现快速失败异常(hashset线程不安全)。
解决:通过Iterator的remove();方法,或者通过一些线程安全的集合来删除、

7、 字符串已经定义好了 CompareTo 的方法,已经不能修改。但是可以写一个外部的比较器来让 TreeSet来按新方法工作

8、TreeSet 只能加入对象,而且对象必须实现Comparable接口的 compareTo方法
字符串和空值不能比较,所以除了空指针异常
//因为要对比,所以必须实现Comparable 接口 compareTo方法
//如果有输出格式的话必须重写toString 方法

9、
* 值得注意的是subList方法的使用会对原来的值进行修改
* 如果下list2元素被修改,相应的list 里面的东西会被修改
* List list2 = list.subList(2, 4);
* 如果修改成如下则不会对list里面的内容修改
* List list2 = new ArrayList(list.subList(2,4));
如果对list里面的东西进行删除,则会出现快速失败异常
10、
//结论:类没有修改hashcode的话在使用HashSet的时候会造成同样的类却是不一样的,也就是说不相等。

0 0
原创粉丝点击