黑马程序员技术交流社区
标题: 学习总结 [打印本页]
作者: yangsing0 时间: 2014-11-12 20:38
标题: 学习总结
1. Set集合特点
无序,无下标,不重复 和 List正好相反
而且,Set接口中的方法和Collection一致
获取Set集合只能有两种方式,一个迭代器,一个增强for
2. HashSet集合
底层是一个哈希表,存储哈希值,桶状结构,查询快
存储到HashSet集合中的对象,必须实现hashCode和equals方法,否则无法判断是否重复元素
重写hashCode和equals方法,都是安装类中的成员变量来进行的,需要的就是成员变量的值。
如果日后你写的类,有可能存储到哈希表中,重写两个方法,但是类中没有成员变量,不重写方法
哈希值,是JVM根据底层哈希算法计算出的十进制数,虚拟的地址,哈希值的出现目的就为了集合而来
面试题,对象equals返回值,对象的哈希值必须相同,如果哈希值相同equals不一定返回值,是hashCode协定规定的,重写方法要一起完成
3. LinkedHashSet
有序的Set集合,开始版本JDK1.4线程不安全集合,基于链表的哈希表
4. TreeSet
底层是二叉树结构,线程不安全集合,运行速度快
对于存储到TreeSet集合中的对象,会按照对象的自然顺序进行排序,如果对象没有自然顺序,抛出异常
TreeSet的排序依据,对象的自然顺序,比较器--TreeSet自己比较
对象的自然顺序,类实现java.lang.Comparabe接口重写compareTo方法
比较器TreeSet自己比较,定义类实现java.util.Comparator接口重写compare方法,将比较器对象,传递到TreeSet集合构造方法
TreeSet优先选择比较器,如果有比较器,有没有自然顺序不重要
会画二叉树图
5. Map集合
存储键值对映射的集合
集合中,键不能重复,每个键只能映射一个值
方法:put get containsKey containsValue
发现接口中,没有迭代器
6. 作业任务
今天的案例,写案例代码
Map集合的获取方式
Map接口中的方法keySet entrySet
keySet 将Map中所有的键,存储到Set集合
entrySet 将Map中的映射关系对象Entry存储到Set集合
Map<String,HashMap<String,String>>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |