当前位置:   article > 正文

32、TreeSet集合与Map集合_map treeset

map treeset

1、TreeSet

TreeSet集合是Set接口的一个实现类,底层依赖于TreeMap,是一种基于红黑树的实现,其特点为:

  1. 元素唯一

  2. 元素没有索引

  3. 使用元素的自然顺序对元素进行排序,或者根据创建 TreeSet 时提供的 Comparator 比较器 进行排序,具体取决于使用的构造方法:自然排序-----public TreeSet():和  比较器排序------- public TreeSet(Comparator<E> comparator):          

自然排序代码演示:

 输出结果为:

注意:添加重复的元素,会自动忽略后加的那个元素。

 比较器排序代码演示:

输出结果为:

 注意:使用比较器排序可以选择升序或者降序对元素进行排列。

2、Map集合

概述:

1.Map与Collection并列存在,用于保存具有映射关系的数据:key-value。
2.Map 中的 key(键) 和 value(链) 都可以是任何引用类型的数据。
3.Map 中的 key(键) 用Set来存放,不允许重复,即同一个 Map 对象所对应的类,须重写。

4.hashCode()和equals()方法。
5.key 和 value 之间存在单向一对一关系,即通过指定的 key(键) 总能找到唯一的、确定的。

6.valueMap接口的常用实现类:HashMap、TreeMap、LinkedHashMap和Properties。其中,HashMap是 Map 接口使用频率最高的实现类。

总结:

1.Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储,是单利集合。

2.Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值,是双列集合。

3.需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

Map常用的子类:HashMap和LinkedHashMap

HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一,需要重写键的hashCode()方法、equals()方法。

LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

Map常用方法:

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。

  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。

  • public V get(Object key) 根据指定的键,在Map集合中获取对应的值。

  • public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。

  • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

  • public boolean containKey(Object key):判断该集合中是否有此键。

代码演示:

输出结果:

 注意:使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;

若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。

Map集合不能直接使用迭代器或者foreach进行遍历。但是转成Set之后就可以使用了。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/766107
推荐阅读
相关标签
  

闽ICP备14008679号