API学习TreeMap

package com.wonders.week01.collection;

import java.util.Collection;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.NavigableSet;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;

/**
 * JDK1.7
 * TreeMap
 * (1)实现了NavigableMap接口,其中该接口是基于红黑树实现的。
 * (2)map是根据它的key的自然顺序排序或者是根据创建map时所使用的的 Comparator的构造器来决定排序的顺序
 * (3)对于containsKey, get, put 和remove这些操作,时间复杂度是log(n)
 * (4)是一个非线程安全的集合类
 * @author liyongyong
 *
 */
public class TreeMapTest {

	public static void main(String[] args) {
		TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>();
		TreeMap<String, Integer> tMap = new TreeMap<String, Integer>();
		tMap.put("five", 5);
		tMap.put("six", 6);
		treeMap.put("one", 1);
		treeMap.put("two", 2);
		treeMap.put("three", 3);
		treeMap.put("four", 4);
		//返回treemap中元素的个数
		int size = treeMap.size();
		System.out.println("treemap中元素的个数为 : " + size);
		//如果treemap包含了一个指定key的映射关系,则返回true,否则返回false
		boolean t = treeMap.containsKey("one");
		System.out.println("treemap中包含了key=one的映射关系 :" + t);
		//如果在treemap中存在一个或者多个key映射了这个value,那么就返回true,否则返回false
		boolean tt = treeMap.containsValue(1);
		System.out.println("treemap中包含了value=1的映射:" + tt);
		//返回treemap中的key所映射的value
		Integer value = treeMap.get("two");
		System.out.println("key=two所映射的value : " + value);
		//返回当前映射中的第一个(最低)键
		String first = treeMap.firstKey();
		System.out.println(first);
		//返回当前映射中的最后一个(最高)键
		String last = treeMap.lastKey();
		System.out.println(last);
		//循环遍历treemap的key
		for(String key:treeMap.keySet()){
			System.out.print( key +"	");
		}
		System.out.println();
		//把tmap全部添加到treemap集合中
		treeMap.putAll(tMap);
		System.out.println("添加以后的treemap大小是   : " + treeMap.size());
		//移除treemap中指定key所映射的关系
		treeMap.remove("one");
		//清除treemap中的所有映射关系
		//treeMap.clear();
		//返回一个对treemap进行浅克隆的实例,其中key和value本身是不会被克隆的,返回值类型是Object类型
		treeMap.clone();
		//返回treemap中的第一个键值对映射关系,等号左边是key,右边是value
		Entry<String, Integer> firstEntry =  treeMap.firstEntry();
		System.out.println("第一个键值对是 : " + firstEntry);
		//返回treemap中的最后一个键值对映射关系,等号左边是key,右边是value
		Entry<String, Integer> lastEntry = treeMap.lastEntry();
		System.out.println("最后一个键值对是 :" +lastEntry);
		//返回treemap中的第一个键值对映射关系,等号左边是key,右边是value
		Entry<String, Integer> pollFirst =  treeMap.pollFirstEntry();
		System.out.println("第一个键值对是 : " + pollFirst);
		//返回treemap中的最后一个键值对映射关系,等号左边是key,右边是value
		Entry<String, Integer> pollLast = treeMap.pollLastEntry();
		System.out.println("最后一个键值对是 :" + pollLast);
		//返回treemap中的key完全小于指定key的最大一个键值对映射关系,等号左边是key,右边是value,如果不存在则返回null
		Entry<String, Integer> lowerEntry =  treeMap.lowerEntry("three");
		System.out.println("完全小于指定key的最大一个键值对映射关系是 : " + lowerEntry);
		//返回treemap中的key完全大于指定key的最小一个键值对映射关系,等号左边是key,右边是value,如果不存在则返回null
		Entry<String, Integer> higherEntry = treeMap.higherEntry("three");
		System.out.println("完全大于指定key的最小一个键值对映射关系 :" + higherEntry);
		//返回完全小于指定key的最大key,如果这样的key不存在返回null
		String key = treeMap.lowerKey("two");
		System.out.println("完全小于指定key的最大key : " + key);
		//返回完全大于指定key的最小key,如果这样的key不存在返回null
		String minKey = treeMap.higherKey("three");
		System.out.println("完全大于指定key的最小key: " + minKey);
		//返回一个小于或者等于指定key的最大的映射关系,如果不存在则返回null
		Entry<String, Integer> floorEntry = treeMap.floorEntry("two");
		System.out.println("小于或者等于指定key的最大的映射关系: " + floorEntry);
		//返回一个小于或者等于指定key的最大的key,如果不存在则返回null
		String floorKey = treeMap.floorKey("three");
		System.out.println("小于或者等于指定key的最大的key: " + floorKey);
		//返回一个大于或者等于指定key的最小的映射关系,如果不存在则返回null
		Entry<String, Integer> ceilEntry = treeMap.ceilingEntry("two");
		System.out.println("大于或者等于指定key的最小的映射关系: " + ceilEntry);
		//返回一个大于或者等于指定key的最小的key,如果不存在则返回null
		String ceilKey = treeMap.ceilingKey("three");
		System.out.println("大于或者等于指定key的最小的key : " + ceilKey);
		//返回treemap中的所有key
		Set<String> keSet = treeMap.keySet();
		for(String k:keSet){
			System.out.print(k + "	");
		}
		System.out.println();
		//返回该映射中包含的键的NavigableSet视图
		NavigableSet<String> n = treeMap.navigableKeySet();
		for(String k:n){
			System.out.print(k + "	");
		}
		System.out.println();
		//返回该映射中包含的键的NavigableSet视图的逆序
		NavigableSet<String> m = treeMap.descendingKeySet();
		for(String k:m){
			System.out.print(k + "	");
		}
		System.out.println();
		//返回treemap中的所有value
		Collection<Integer> integers = treeMap.values();
		for(Integer num:integers){
			System.out.print(num +"		");
		}
		System.out.println();
		//返回treemap里面的所有映射关系,等号左边是key,等号的右边是value
		Set<Entry<String, Integer>> set = treeMap.entrySet();
		for (Entry<String, Integer> entry : set) {
			System.out.print( entry + "**");
		}
		System.out.println();
		//返回该映射中包含的映射的反向顺序视图
		NavigableMap<String, Integer>  sMap = treeMap.descendingMap();
		System.out.println(sMap);
		//返回集合中包含开始key,不包含结束key的所有映射关系,其中开始key一定小于结束key
		SortedMap<String, Integer>  sort = treeMap.subMap("six", "three");
		System.out.println("集合中包含开始key,不包含结束key的所有映射关系 : " + sort);
		//返回集合中完全小于指定key的所有映射关系
		SortedMap<String, Integer>  sort1 = treeMap.headMap("three");
		System.out.println("完全小于指定key的所有映射关系: " + sort1);
		//返回集合中完全大于于指定key的所有映射关系
		SortedMap<String, Integer>  sort2 = treeMap.tailMap("three");
		System.out.println("完全大于于指定key的所有映射关系 : " + sort2);
	}
}

这里写图片描述
这里写图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值