java treemap hashmap,22.如何决定使用 HashMap 还是 TreeMap-

  java treemap hashmap,22.如何决定使用 HashMap 还是 TreeMap?

  爪哇中的模拟和树形图(Java中的模拟和树形图)首先我们来看看树形图和爪哇中的模拟有什么不同?

  首先,我们将看到树形图与爪哇中的模拟有何不同?

  树状图(树形图)该类在java.util包中可用。

  此类在java.util包中可用。

  这个类是地图接口的实现类。

  此类是地图接口的实现类。

  树形图的底层数据结构是红黑树。

  树形图的基础数据结构是红黑色树。

  在树形图中,"元素的插入顺序"没有被保留,因为元素将根据关键字的排序顺序插入(这里排序将基于关键字进行)。

  在树形图中,"元素的插入顺序"未保留,因为将根据键的某种排序顺序插入元素(此处将根据键进行排序)。

  在树形图中,对象被表示为一组作为键值对的元素。

  在树形图中,对象表示为一组元素,这些元素是键/值对。

  在树形图中,键的"重复插入是不可能的"(即,不允许为键插入重复元素)。

  在树形图中,键"不能重复插入"(即,不允许插入键的重复元素)。

  在树形图中,值的"重复插入是可能的"(即,允许为值插入重复元素,或者对值没有限制)。

  在树形图中,值可以"重复插入"(即,允许为值插入重复元素,或者对值没有限制)。

  在树形图中,排序分为两种类型:

  在树形图中,排序分为两种类型:

  默认自然排序(升序)默认自然排序"树映射键"中的自定义排序(升序或降序)应该是同质的和可比较的。

  在"默认"自然排序中,"树形图键"应该是同质且可比较的。

  在定制排序中,"树映射键"不需要同质和可比。

  在自定义排序中,"树形图键"不必是同质的和可比较的。

  在树形图中,对于作为第一个元素的键,"可以插入空”,换句话说,如果我们在第一个元素后插入空,那么我们将得到一个异常。

  在树形图中,将键作为第一个元素"可以插入空",换句话说,如果我们将在第一个元素后插入空,则将获得异常。

  在树形图中,对于非空映射的键,不能插入空值。

  在树形图中,非空地图的键"无法插入空值"。

  示例:

  例:

  //Java程序演示树形图导入java.util.*的行为;class TreeMap class { public static void main(String[]args){//创建TreeMap TreeMap tm=new TreeMap()的实例;//通过使用放()在TreeMap tm.put(1, Java )中添加元素;tm.put(3, C );tm.put(2, C );tm.put(4, Java );tm.put(6,null);TM put(7,10);tm.put(2, Ruby );/* tm.put(Java ,是编程);这里异质的对象不允许用于keys *//* tm.put(null, Python );在这里,对于非空的TreeMap *//* tm.put(2, Ruby ),键的空插入是不可能的;这里我们不会得到任何异常但只有一个将是可观的*///显示当前树图System.out.println(显示当前树图是: TM );}}输出

  输出量

  e:\ programs javac TreeMap类。javae:\ programs java树形图类显示当前的树形图是:{1=Java,2=Ruby,3=C,4=Java,6=null,7=10}其次,我们来看看模拟和爪哇中的树形图有什么不同?

  其次,我们将看到模拟与爪哇中的树形图有何不同?

  哈希图(散列表)这个类在java.util包中可用。

  此类在java.util包中可用。

  这个类是地图接口的实现类。

  此类是地图接口的实现类。

  模拟的底层数据结构是哈希表.

  模拟的基础数据结构是哈希表。

  模拟是LinkedHashMap的父级。

  模拟是LinkedHashMap的父级。

  在模拟中,"元素的插入顺序"不被保留,因为元素将根据一些键的散列码插入(即插入顺序不需要与检索顺序相同)。

  在模拟中,"元素的插入顺序"未保留,因为将根据某些键的散列码插入元素(即,插入顺序不必与检索顺序相同)。

  在模拟中,对象被表示为一组作为键值对的元素。

  在模拟中,对象被表示为一组作为键值对的元素。

  在模拟中,键的"重复插入是不可能的"(即不允许为键插入重复元素)。

  在模拟中,键"不能重复插入"(即,不允许插入键的重复元素)。

  在模拟中,值的"重复插入是可能的"(即,允许为值插入重复元素,或者对值没有限制)。

  在模拟中,值可以"重复插入"(即,允许为值插入重复元素,或者对值没有限制)。

  在模拟中,键和值可以插入空值,但键可以插入一次,值可以插入多次。

  在模拟中,键和值"可以空插入",但键一次,值多个。

  在模拟中,键和值都允许"异构对象"。

  在模拟中,键和值均允许使用"异构对象"。

  示例:

  例:

  //Java程序演示模拟导入java.util .集合的行为;导入Java。util。hashmapclass HashMap class { public static void main(String[]args){//创建模拟的实例HashMap hm=new HashMap();//通过使用放()方法在HashMap hm.put中添加一些值(‘Java’,1000);hm.put(C ,2000);hm.put(C ,3000);hm.put(Ruby ,4000);hm.put(Python ,1000);hm.put(null ,null);hm.put(Django ,null);/* hm.put(null ,null);这里我们不会得到任何错误,但是对于HashMap System.out.println的键*///显示检索顺序,可以接受一个空值(当前模拟列表为:‘嗯’);//通过使用值()查找模拟集合values=hm.values()的值;//显示HashMap System.out.println的值(当前模拟键值为:“值”);}}输出

  输出量

  e:\ Programsjavac HashMap类。javae:\ Programsjava HashMap类当前模拟列表为:{Ruby=4000,C=2000,Django=null,Python=1000,C=3000,null=null,Java=1000 }当前模拟键值为:[4000,2000,null,1000,3000,null,1000].翻译自:https://www。包括帮助。Java中hashmap和treemap之间的差异。文件

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: