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具有键的排序顺序。

以上是 Java中的TreeMap,HashMap和LinkedHashMap之间的区别 的全部内容, 来源链接: utcz.com/z/322399.html

回到顶部