collection父接口下的set子接口
set接口
特点:无序,不可重复!
允许null元素
set接口下的实现类:
1.hashset
内部封装hashmap
非线程安全
hashset检查元素重复的步骤或者原理:
a.首先判断hashcode
使用对象的hashCode来判断对象加入的位置,同时也会与其他已经加入的对象的hashCode进行 比较,如果没有相等的hashCode,HashSet就会假设对象没有重复出现。
b.如果发现hashcode值相同,则采用equals方法进行值判断,若为true则重复,反之不重复.
2.Treeset
无序集合,可实现自动排序
基于treemap实现,本质红黑树
自动排序的关键在:Comparable,Comparator这两个接口。
两种方法:
a.元素自身具有比较性,使用comparable接口
b.使该容器具有比较性,外部比较,使用comparator接口
比较:HashSet 效率要高于TreeSet,内部无序。
Treeset 内部有序,效率低。
对set集合的遍历和对父类collection遍历方法一致,
a.使用增强for循环进行遍历
b.使用迭代器iterator
(今天上课抽空学习了昨天剩下的set接口及实现类,明天map类)