您的位置:首页 > 编程语言 > Java开发

LinkedHashMap与TreeMap浅析

2016-06-08 12:43 330 查看
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

/**
* OrderMap  对排序map的分析
*   TreeMap 和 LinkedHashMap
*
* @author littlehow
* @time 2016-06-08 11:54
*/
public class OrderMap {

/**
* 用四个键值对来分析
* @param map
*/
public static void putValue(Map<String, String> map) {
map.put("one", "littlehow");
map.put("two", "color wolf");
map.put("three", "green cat");
map.put("four", "yellow dog");
}

public static void printValue(Map<String, String> map) {
Set<String> set = map.keySet();
for(String key : set) {
System.out.println(key + "=" + map.get(key));
}
}

/**
* treemap
* 因为treemap维护的是一个comparator的一群元素,所以在
* 排序的时候运用的是元素之间的compareTo进行排序,
* 而不是以插入顺序进行排序,所以输出与put顺序不一致
*/
public static void treeMap() {
Map<String, String> map = new TreeMap<String, String>();
putValue(map);
//输出
printValue(map);
//结果
//four=yellow dog
//one=littlehow
//three=green cat
//two=color wolf
}

/**
* linkedHashMap
* 维护的是一个链表结构,所以排序是以插入顺序进行排序的
*/
public static void linkedMap() {
Map<String, String> map = new LinkedHashMap<String, String>();
putValue(map);
//输出
printValue(map);
//结果
//one=littlehow
//two=color wolf
//three=green cat
//four=yellow dog
}

/**
* 调用
* @param args
*/
public static void main(String[] args) {
linkedMap();
treeMap();
}
}

//以后有时间可以剖析源码,对结构来进行分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java OrderMap