hashmap和linkedhashmap和treemap,hashmap linkedhashmap
HashMap
HashMap是最常用的映射。它根据键的HashCode值存储数据,可以根据键直接得到它的值。它的访问速度很快,遍历顺序完全随机。HashMap只允许一个键为空,多个值为空。
特点:完全随机
优点:随机存取,取值快。
缺点:多线程同时写HashMap可能导致数据不一致。如果需要同步,请使用集合的synchronizedMap方法或使用ConcurrentHashMap。
LinkedHashMap
LinkedHashMap是HashMap的子类,保存记录的插入顺序。与HashMap的随机遍历不同,用迭代器遍历时,首先获得的记录必须先插入,类似于python中的OrderedDict。
遍历速度会比HashMap慢一些,但有一个例外:当HashMap的容量很大,实际数据很少时,HashMap的遍历速度与其容量有关,而LinkedHashMap只与实际数据量有关。
TreeMap
TreeMap实现了SortMap接口,该接口可以按键对它保存的记录进行排序。默认是键的升序,您也可以指定一个排序比较器。遍历TreeMap时,获得的记录按键排序。
根据数据选择Map
一般我们用HashMap最多,在Map中插入、删除、定位元素是最佳选择。但是如果你想按照自然顺序或者自定义顺序遍历键,那么TreeMap会更好。如果输出的顺序和输入的顺序相同,可以用LinkedHashMap实现,也可以按照读取的顺序排列。
推荐教程:java教程以上是Java中HashMap和LinkedHashMap区别的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。