java面试题之HashMap和TreeMap的区别

HashMap和TreeMap的区别

相同点:

  1. 都是以key和value的形式存储;
  2. key不可以重复;
  3. 都是线程不安全的;

不同点:

  1. HashMap的key可以为空
  2. TreeMap的key值是有序的(使用了红黑树的二叉树结构存储的Entry)

原文地址:https://www.cnblogs.com/hujinshui/p/9983785.html

时间: 2024-10-14 17:24:40

java面试题之HashMap和TreeMap的区别的相关文章

Java 中HashTable、HashMap、TreeMap三者区别,以及自定义对象是否相同比较,自定义排序等

/* Map集合:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低.基本已废弃 |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的.将hashtable替代,.效率高,不保证顺序. |--TreeMap:底层是二叉树数据结构.线程不同步.可以用于给map集合中的键进行排序.保证顺序 */ import java.util.*

java学习笔记——Java中HashMap和TreeMap的区别深入理解

本文转载自Java中HashMap和TreeMap的区别深入理解 首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 

Java 集合系列 11 hashmap 和 hashtable 的区别

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

Java 对比Hashtable、Hashmap、Treemap有什么不同?(正在整理学习中)

Hashtable.Hashmap.Treemap都是最常见的一些Map实现,是以键值对的形式存储和操作数据的容器类型. Hashtable是Java类库提供的一个哈希实现,本身是同步的,不支持null键和null值,由于同步导致性能开销,所以已经很少被推荐使用. HashMap是应用更加广泛的哈希表实现,行为上大致与HashTable一致,主要区别在于HashMap不是同步的,支持null键和null值等.通常情况下HashMap进行get和put操作可以达到常数时间的性能,所以它是绝大部分利

HashMap,LinkedHashMap,TreeMap的区别(转)

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致.如果需要同步,可以用 Collections的synchronizedM

Java中HashMap和TreeMap的区别深入理解(转载)

首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫 做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应 该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 TreeMap 非线程安全 线程安全 在Java里,线程安全一

Java中HashMap和TreeMap的区别深入理解

首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 TreeMap 非线程安全 线程安全 在Java里,线程安全一般体

Java面试题之hashmap中用什么hash算法解决碰撞的?

查了一下源码(jdk8),记录一下吧,能记住就记一下吧! static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } 原文地址:https://www.cnblogs.com/hujinshui/p/10463882.html

黑马程序员——Hashtable,HashMap,TreeMap的区别

Hashtable : 此类实现一个哈希表,该哈希表将键映射到相应的值,任何非null  对象都可以作键值,是线程不同步的 HashMap : 基于哈希表的Map接口的实现,此实现提供所有可选的映射操作并允许使用null值各null键., TreeMap : 底层是二叉树结构,线程不同步,对键进行了排序 版权声明:本文为博主原创文章,未经博主允许不得转载.