TreeMap、HashMap 和 LinkedHashMap 在 Java 编程中的区别
HashMap、TreeMap 和 LinkedHashMap 都实现了 java.util.Map 接口,以下为其特性。
HashMap
HashMap 插人和查找的复杂度为 O(1)。
HashMap 允许一个空键和多个空值。
HashMap 不维护任何顺序。
TreeMap
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:
" + 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:
" + 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:
" + 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 对键进行了排序。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP