周末在家测试了hashmap和treemap的性能,分别产生指定数目的随机数,然后依次放到不同的容器中,记录一下放之前和放之后的时间。然后再根据产生的随机数,在容器中中读一把,记录一下读之前和读之后的时间。
hashmap的测试代码如下:
List<Integer> keys = new ArrayList<Integer>(S_Len);
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
{
Random random = new Random();
for(int i=0;i<S_Len;i++){
int key = random.nextInt();
keys.add(key);
}
}
{
Date date = new Date();
for(Integer key:keys){
map.put(key, key);
}
System.out.println("put time=" + (new Date().getTime()-date.getTime()));
}
{
Date date = new Date();
for(Integer key:keys){
map.get(key);
}
System.out.println("get time=" + (new Date().getTime()-date.getTime()));
}
treemap的代码很类似,只有第二行HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();变成了TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();测试出来的结果应该是hashmap完胜treemap。
hashmap的结果
treemap的结果
- 大小: 16.1 KB
- 大小: 17 KB
分享到:
相关推荐
HashMap和TreeMap是Java中两种常用的Map实现,它们各自具有不同的特性和使用场景。 HashMap是基于哈希表实现的,其核心思想是通过键对象的hashCode()方法来快速定位到对应的桶(bucket),从而提高查找效率。...
- **性能分析**:在插入和查找操作中,随着数据量的增加,TreeMap的性能逐渐下降,尤其是在大规模数据时,相比于HashMap,其插入和查找效率较低。 2. **HashMap**: - **实现方式**:HashMap基于散列表(Hash ...
- **性能**:尽管`TreeMap`提供排序功能,但它的时间复杂度通常是O(log n),因此在某些情况下可能比`HashMap`和`LinkedHashMap`慢。 #### 4. HashTable `HashTable`是一种古老的`Map`实现,它的设计是为了确保线程...
这两个参数影响HashMap的性能和内存消耗,合理的设置能优化空间和时间效率。 Hashtable与HashMap类似,也是基于哈希表的,但它在Java早期版本中就已经存在,并且是线程安全的。由于同步机制的存在,Hashtable的性能...
在Java编程语言中,`HashMap`、`TreeMap`和`LinkedHashMap`都是`java.util.Map`接口的实现,它们提供了不同的数据存储和访问策略。本文将深入探讨这三种数据结构的特点、工作原理以及适用场景。 1. **HashMap** `...
在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...
TreeMap 是基于红黑树的数据结构,具有良好的性能和可扩展性。TreeMap 不允许键或值为 Null。 比较 在选择 Map 实现类时,需要考虑以下几个因素: * 是否需要同步?如果需要同步,可以选择 HashTable 或者使用 ...
这是因为TreeMap使用了红黑树的数据结构,它的内部会根据Key的自然排序或自定义比较器进行排序。默认情况下,如果Key实现了Comparable接口,就会按照自然排序,否则你需要提供一个Comparator。在这个例子中,Dog对象...
Map接口用于保存具有key-value映射关系的数据,常见的Map实现包括HashMap、TreeMap、HashTable和LinkedHashMap等。Queue是Java提供的队列实现。 本文总结了HashMap和HashTable的源码学习和面试总结,涵盖了它们的...
8. **特性和性能**:与HashMap相比,TreeMap的插入和查找速度较慢,但由于其有序性,对于需要保持数据排序的应用来说,TreeMap是一个更好的选择。在内存使用方面,由于需要存储额外的排序信息,TreeMap通常比HashMap...
TreeMap能保持插入顺序或自然排序,但其性能稍逊于HashMap。 8. **HashMap的遍历方式**:HashMap可以通过`keySet()`、`entrySet()`和`values()`方法分别获取键的集合、键值对的集合和值的集合进行遍历,其中`...
7. **HashMap vs TreeMap性能测试** - TreeMap保持了键的排序,但插入和查找速度通常比HashMap慢。 性能测试通常会包含以下几个方面: - **添加元素**:测量在大量元素下添加元素的速度。 - **查找元素**:测试...
在示例代码中,我们创建了三个Map实例:HashMap、Hashtable和TreeMap。HashMap展示了无序的特性,而TreeMap则按顺序打印键值对。Hashtable是HashMap的线程安全版本,但在Java 5之后,推荐使用并发集合如...
在23号章节中,讲解可能包括了TreeMap如何按照键的自然顺序或比较器排序,红黑树的性质,以及如何通过旋转和颜色调整来维护平衡。 总的来说,这些章节深入地探讨了Java集合框架中两个关键的类:HashMap和TreeMap。...
4. **键值对**:键(Key)必须实现`hashCode()`和`equals()`方法,以确保正确的哈希计算和比较。值(Value)可以是任意对象。 5. **键的唯一性**:在`HashMap`中,键是唯一的,相同的键不能添加多次。如果尝试插入...
HashMap 中使用红黑树来存储元素,是为了提高查找、插入和删除操作的性能。红黑树是一种自平衡二叉树,可以保持二叉树的平衡,从而获得较高的查找性能。 红黑树的创建: 红黑树的优点是可以以 O(log2(N)) 的时间...
3. **性能影响**:尽管`TreeMap`的性能通常优于`HashMap`,但其插入和删除速度相对较慢,因为它们涉及到树结构的调整。 综上所述,`TreeMap`是Java中一个重要的有序映射数据结构,适用于需要排序和导航功能的场景。...
本资源聚焦于Java集合中的四个关键类:HashSet、TreeSet、HashMap和TreeMap,它们分别代表了不同类型的集合容器。 1. **HashSet**:HashSet是一个不允许重复元素的无序集合。它基于哈希表实现,插入和查找操作的...
在Java编程语言中,`HashMap`和`TreeMap`是两种常见的`Map`接口实现,它们各自具有不同的特性和用途。这两个数据结构都是用来存储键值对的数据结构,但它们的内部实现机制和性能特点有所不同。 HashMap是基于哈希表...