HashMap , TreeMap , TreeMap 默认排序方式

先看代码

package test;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

public class Maps {
	
	public static void  main(String[] args) {
		Map tree = new TreeMap<>();
		Map linked = new LinkedHashMap<>();
		Map hash = new HashMap<>();
		
		System.out.println("tree :"+buildMap(tree));
		System.out.println("tree :"+buildMap(linked));
		System.out.println("tree :"+buildMap(hash));
	}
	
	public static Map buildMap(Map map) {
		map.put("0", "a");
		map.put("e", "b");
		map.put("4", "s");
		map.put("3", "c");
		return map;
	}

}

输出结果

tree :{0=a, 3=c, 4=s, e=b}
linked :{0=a, e=b, 4=s, 3=c}
hash :{3=c, e=b, 0=a, 4=s}

由此可见:  
HashMap是按照HashCode 排序,莫名其妙的顺序。  
TreeMap是按照自身的顺序排序,比如数字的话,按照数字升序,ascII等。
LinkedHashMap是按照先进先出的顺序


你可能感兴趣的:(java)