TreeMap 的常用方法
-
TreeMap中的元素默认按照keys的自然排序排列。
-
对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序
-
降序排序可以这样
TreeMap<Integer, String> map = new TreeMap<>(Comparator.reverseOrder());
增加方法
增添元素
- V put(K key, V value):将指定映射放入该TreeMap中
- V putAll(Map map):将指定map放入该TreeMap中
删除元素
- void clear():清空TreeMap中的所有元素
- V remove(Object key):从TreeMap中移除指定key对应的映射
修改元素
V replace(K key, V value):替换指定key对应的value值
boolean replace(K key, V oldValue, V newValue):当指定key的对应的value为指定值时,替换该值为新值
查找元素
- boolean containsKey(Object key):判断该TreeMap中是否包含指定key的映射
- boolean containsValue(Object value):判断该TreeMap中是否包含有关指定value的映射
- Map.Entry<K, V> firstEntry():返回该TreeMap的第一个(最小的)映射
- K firstKey():返回该TreeMap的第一个(最小的)映射的key
Map.Entry<K, V> lastEntry():返回该TreeMap的最后一个(最大的)映射 - K lastKey():返回该TreeMap的最后一个(最大的)映射的key
- v get(K key):返回指定key对应的value
- SortedMap<K, V> headMap(K toKey):返回该TreeMap中严格小于指定key的映射集合
- SortedMap<K, V> subMap(K fromKey, K toKey):返回该TreeMap中指定范围的映射集合(大于等于fromKey,小于toKey)
遍历接口
- Set<Map<K, V>> entrySet():返回由该TreeMap中的所有映射组成的Set对象
- void forEach(BiConsumer<? super K,? super V> action):对该TreeMap中的每一个映射执行指定操作
- Collection values():返回由该TreeMap中所有的values构成的集合
其他方法
- Object clone():返回TreeMap实例的浅拷贝
- Comparator<? super K> comparator():返回给该TreeMap的keys排序的comparator,若为自然排序则返回null
- int size():返回该TreepMap中包含的映射的数量
遍历方式
for循环
for (Map.Entry entry : treeMap.entrySet()) {
System.out.println(entry);
}
迭代器循环
Iterator iterator = treeMap.entrySet().iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
TreeSet 的用法
Java中的TreeSet是Set的一个子类,TreeSet集合是用来对象元素进行排序的,同样他也可以保证元素的唯一
TreeSet是用来排序的, 可以指定一个顺序, 对象存入之后会按照指定的顺序排列
使用方式
a.自然顺序(Comparable)
TreeSet类的add()方法中会把存入的对象提升为Comparable类型
调用对象的compareTo()方法和集合中的对象比较
根据compareTo()方法返回的结果进行存储
b.比较器顺序(Comparator)
创建TreeSet的时候可以制定 一个Comparator
如果传入了Comparator的子类对象, 那么TreeSet就会按照比较器中的顺序排序
add()方法内部会自动调用Comparator接口中compare()方法排序
调用的对象是compare方法的第一个参数,集合中的对象是compare方法的第二个参数
c.两种方式的区别
TreeSet构造函数什么都不传, 默认按照类中Comparable的顺序(没有就报错ClassCastException)
TreeSet如果传入Comparator, 就优先按照Comparator
构造方法
常用方法
-
boolean add(E e) 添加元素
-
addAll(Collection )批量添加
-
ceiling(E e) 返回set中 >= 给的元素的最小元素,如果不存在,返回null
-
floor(E e) 返回set中 <= 给的元素的最小元素,如果不存在,返回null
-
first() 返回 set 中 第一个元素(排序后最小的)
-
last() 返回set中 最后一个元素(最高的)
-
clear()移除set中元素
-
clone()返回副本
-
contains(Object o)返回set中是否包含给定元素
-
descendingIterator()返回降序迭代器
-
Iterator()返回升序迭代器
-
descendingSet()返回逆序视图
-
headSet( E toElement) 返回此set的部分视图,其中元素严格小于 E
-
subSet
-
lower(e) 返回严格小于给定元素的最大元素,没有返回null
-
higher(e)返回严格大于给定元素的最小元素,没有返回null
-
pollfirst()获取并移除第一个元素
-
polllast()获取并移除最后一个元素