赞
踩
TreeSet集合是Set接口的一个实现类,底层依赖于TreeMap,是一种基于红黑树的实现,其特点为:
元素唯一
元素没有索引
使用元素的自然顺序对元素进行排序,或者根据创建 TreeSet 时提供的
Comparator
比较器 进行排序,具体取决于使用的构造方法:自然排序-----public TreeSet():和 比较器排序------- public TreeSet(Comparator<E> comparator):
自然排序代码演示:
输出结果为:
注意:添加重复的元素,会自动忽略后加的那个元素。
比较器排序代码演示:
输出结果为:
注意:使用比较器排序可以选择升序或者降序对元素进行排列。
概述:
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中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
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之后就可以使用了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。