先看代码
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中三种不同类型的Map集合:HashMap、TreeMap及LinkedHashMap的区别。主要探讨了它们各自的排序方式,包括HashMap基于HashCode的无序特性、TreeMap基于键的排序功能以及LinkedHashMap保持插入顺序的特点。
619

被折叠的 条评论
为什么被折叠?



