LinkedHashMap与TreeMap浅析
2016-06-17
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(); }}
//以后有时间可以剖析源码,对结构来进行分析