treeMap的简单使用,后续介绍底层实现
import java.util.HashMap;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
/**
*
* TreeMap 的 tailMap()、headMap()、firstKey() 方法使用
*
*/
public class TreeMapDemo1 {
public static void main(String[] args) {
TreeMap<Integer,String> treeMap = new TreeMap<>();
/**
* 1、添加元素
*/
treeMap.put(2,"two");
treeMap.put(1,"one");
treeMap.put(3, "three");
treeMap.put(6, "six");
treeMap.put(5, "five");
Map<Integer,String> map = new HashMap<>();
map.put(8,"八");
map.put(7,"七");
treeMap.putAll(map);
System.out.println(treeMap);
/**
* 2、删除元素
* void clear():清空TreeMap中的所有元素
* V remove(Object key):从TreeMap中移除指定key对应的映射
*/
/**
* 3、修改元素
* V replace(K key, V value):替换指定key对应的value值
* boolean replace(K key, V oldValue, V newValue):当指定key的对应的value为指定值时,替换该值为新值
*/
/**
* 4、查找元素
* boolean containsKey(Object key):判断该TreeMap中是否包含指定key的映射
* boolean containsValue(Object value):判断该TreeMap中是否包含有关指定value的映射
* v get(K key):返回指定key对应的value
*
* Map.Entry<K, V> firstEntry():返回该TreeMap的第一个(最小的)映射
* K firstKey():返回该TreeMap的第一个(最小的)映射的key
* Map.Entry<K, V> lastEntry():返回该TreeMap的最后一个(最大的)映射
* K lastKey():返回该TreeMap的最后一个(最大的)映射的key
*
* SortedMap<K, V> headMap(K toKey):返回该TreeMap中严格小于指定key的映射集合
* SortedMap<K,V> tailMap(K fromKey):返回大于等于fromkey的数据
* SortedMap<K, V> subMap(K fromKey, K toKey):返回该TreeMap中指定范围的映射集合(大于等于fromKey,小于toKey)
*
*/
SortedMap<Integer, String> tailMap = treeMap.tailMap(3);
System.out.println("tail map values "+tailMap);
SortedMap<Integer, String> headMap = treeMap.headMap(3);
System.out.println("head map values "+headMap);
Integer firstKey = treeMap.firstKey();
System.out.println("first key "+firstKey);
/**
* 5、遍历接口
* Set<Map<K, V>> entrySet():返回由该TreeMap中的所有映射组成的Set对象
* void forEach(BiConsumer<? super K,? super V> action):对该TreeMap中的每一个映射执行指定操作
* Collection<V> values():返回由该TreeMap中所有的values构成的集合
*/
/**
* for循环
*
* for (Map.Entry entry : treeMap.entrySet()) {
* System.out.println(entry);
* }
*
* 迭代器循环
*
* Iterator iterator = treeMap.entrySet().iterator();
* while (iterator.hasNext()) {
* System.out.println(iterator.next());
* }
*
*/
}
}