Java编程中TreeMap,HashMap和LinkedHashMap之间的区别
HashMap,TreeMap和LinkedHashMap均实现java.util.Map接口,以下是它们的特征。
哈希映射
HashMap的插入和查找复杂度为O(1)。
HashMap允许一个空键和多个空值。
HashMap不维护任何顺序。
树状图
TreeMap的插入和查找复杂度为O(logN)。
TreeMap不允许空键,但允许多个空值。
TreeMap维护顺序。它按排序和升序存储键。
LinkedHashMap
LinkedHashMap的插入和查找复杂度为O(1)。
LinkedHashMap允许一个空键和多个空值。
LinkedHashMap维护插入键值对的顺序。
示例
import java.util.HashMap;
import java.util.Hashtable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class Tester {
public static void main(String args[]) {
Map<String, String> map = new HashMap<String, String>();
map.put("One", "1");
map.put("Five", "5");
map.put("Four", "4");
map.put("Two", "2");
map.put("Three", "3");
System.out.println("HashMap: \n" + map);
Map<String, String> map1 = new LinkedHashMap<String, String>();
map1.put("One", "1");
map1.put("Five", "5");
map1.put("Four", "4");
map1.put("Two", "2");
map1.put("Three", "3");
System.out.println("LinkedHashMap: \n" + map1);
Map<String, String> map2 = new TreeMap<String, String>();
map2.put("One", "1");
map2.put("Five", "5");
map2.put("Four", "4");
map2.put("Two", "2");
map2.put("Three", "3");
System.out.println("TreeMap: \n" + map2);
}
}输出结果
HashMap:
{Five=5, One=1, Four=4, Two=2, Three=3}
LinkedHashMap:
{One=1, Five=5, Four=4, Two=2, Three=3}
TreeMap:
{Five=5, Four=4, One=1, Three=3, Two=2}在这里,您可以看到HashMap具有随机的键顺序,LinkedHashMap保留了插入键的顺序,而TreeMap具有键的排序顺序。
热门推荐
10 高一祝福语简短 励志
11 立秋节气简短祝福语
12 简短公司周年祝福语大全
13 中考感言简短祝福语大全
14 体育老师简短祝福语
15 干杯生日祝福语简短独特
16 特别简短的祝福语老师
17 朋友坐车走了祝福语简短
18 给英雄的祝福语简短