7月17,18日学习内容总结
对HashSet、LinkedHashSet、TreeSet、HashMap、Hashtable、TreeMap内容了解
HashSet
HashSet:底层数据结构是哈希表,元素无序,唯一,线程不安全,效率高,集合元素可以为null值 ;
HashSet:保证元素唯一性,是通过重写equals()和hashCode()(确定元素在链表中的位置)方法来保证;
LinkedHashSet
LinkedHashSet: 底层数据结构是链表和哈希表,元素唯一,且有序,线程不安全,效率高
其中链表保证有序,哈希表保证元素 唯一
TreeSet
TreeSet :底层数据结构是二叉树,元素唯一,且能对元素进行排序
TreeSet 排序
自然排序:即采用空参构造,要求元素必须实现Comparable接口,重写该接口中的compareTo()方法,根据此方法的返回值的正负0来决定元素的放置顺序
比较器排序:使用有参数构造,需要传一个比较器Comparator,重写该接口中的compare()方法根据此方法的返回值的正负0来决定元素的放置顺序
所有Map集合的数据结构,只跟键有关,跟值没关系,一个键只能映射一个值(即一键一值)
HashMap
HashMap: 键的数据结构是哈希表,键唯一,但存入的东西并不是按照添加顺序添加;允许存入null键和null值,线程不安全效率高;
Hashtable
与HashMap 的区别:
HashMap 允许存储null键和null值,且线程不安全效率高;但是 Hashtable 不允许null键和null值,且线程安全效率低
TreeMap
TreeMap:键的数据结构是红黑树,可保证键的排序和唯一性 ,线程不安全,效率比较高
排序:自然排序、比较器排序 (可以对应TreeSet排序);
Map集合的遍历
方法一:使用keyset()获取所有键,此时生成一个set集合
遍历set集合,调用get(key)方法,来获得对应的值
方法二:获取键值对,使用entryset() 方法,此时生成一个set集合,遍历set集合,调用特有的:getkey() ,get value() 方法
本文详细介绍了Java集合类中HashSet、LinkedHashSet、TreeSet、HashMap、Hashtable、TreeMap的特点及使用方式,包括它们的数据结构、线程安全性、存储特性等,并对比了HashMap与Hashtable的区别。
182

被折叠的 条评论
为什么被折叠?



