JAVA知识点总结-11 Set,Map

一 HashSet:

       1.元素唯一,无序,不保证迭代顺序永久不变

       2. 元素的唯一性依靠重写的HashCode和equals方法

       3.String类中已经自动重写了HashCod和equals方法,不用重写

    

       3. 执行流程:

首先判断哈希值是否相同,如果不同,就直接添加到集合。

如果相同,继续执行equals(),看其返回值,

如果是false,就直接添加到集合。

如果是true,说明元素重复不添加。


二 TreeSet:

     1.对于数字和字母的排序,是自动的

      2.自然排序:类实现Compareable()接口,重写CompareTo()方法,创建TreeSet集合时不用传参


          


      3.比较器排序:不需要实现Comparator接口,只要在新建TreeSet时时使用匿名内部类重写CompareTo方法即可

    


 

4.HashSet与TreeSet的相同点与不同点

相同点:

单列集合,元素不可重复

不同点:

1. 底层存储的数据结构不同

     HashSet底层用的是HashMap哈希表结构存储,而TreeSet底层用的是TreeMap树结构存储

2.存储时保证数据唯一性依据不同

    HashSet是通过复写hashCode()方法和equals()方法来保证的,而TreeSet通过Compareable接口的 compareTo()方法来保证的

3.有序性不一样

  HashSet无序,TreeSet有序


三 Map:

     概念:  map<key,value>,将键映射到值的对象,一个映射不能包含重复的键,一个键映射一个值

     1.添加功能: V put(K key,V value):集合添加键值对

     2.长度功能: int size():键值对对数。

     3.通过键值遍历



       4.通过获取键值对的对象遍历,getKey, getValue



      

 

.HashMap与TreeMap的相同点与不同点

相同点:主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。

不同点:

1.HashMap里面存入的键值对在取出的时候是随机的,也是我们最常用的一个Map.根据键可以直接获取它的值,

具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap 是最好的选择。  

2.TreeMap取出来的是排序后的键值对。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值