Eclipse里新建java工程,run as 一下以下code就知道区别了.
package src.com.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class CompareMap {
private static List list = null;
private static int size = 3;
public List CreateList1(){
List lt1 = new ArrayList();
Map hm = null;
for(int i=0;i<size;i++){
hm = new HashMap();
hm.put("dd", "dd"+i);
hm.put("bb", "bb"+i);
hm.put("cc", "cc"+i);
hm.put("aa", "aa"+i);
hm.put("ee", "ee"+i);
lt1.add(hm);
}
return lt1;
}
public List CreateList2()throws ClassCastException{
List lt2 = new ArrayList();
Map tm = null;
for(int i=0;i<size;i++){
tm = new TreeMap();
tm.put("dd", "dd"+i);
tm.put("bb", "bb"+i);
tm.put("cc", "cc"+i);
tm.put("aa", "aa"+i);
tm.put("ee", "ee"+i);
lt2.add(tm);
}
return lt2;
}
/**
* @param args
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args){
// TODO Auto-generated method stub
CompareMap cm =new CompareMap();
System.out.println("-----------HaspMap------------");
List list1 = (List)cm.CreateList1();
Map hm = null;
for(int i=0;i<list1.size();i++){
hm = (HashMap)list1.get(i);
System.out.println(hm.toString());
}
System.out.println("-----------TreeMap------------");
List list2 = (List)cm.CreateList2();
Map tm = null;
for(int i=0;i<list2.size();i++){
tm = (TreeMap)list2.get(i);
System.out.println(tm.toString());
}
}
}
分享到:
相关推荐
- **时间复杂度**:插入、查找和删除的平均时间复杂度同样为O(log n),与TreeMap相同,但常数项较小,空间效率较高。 - **特性**:ConcurrentSkipListMap支持并发操作,多个线程可以同时进行插入、删除和查找,...
与HashMap一样,TreeMap也是非线程安全的。它的构造方法包括无参构造、接受另一个Map作为初始数据的构造,以及接受比较器来指定排序规则的构造。TreeMap的操作,如插入、删除和查找,通常的时间复杂度为O(log n),这...
### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...
与`TreeMap`类似,`TreeSet`也支持`headSet()`、`tailSet()`和`subSet()`等方法,用于返回集合的一部分。 ### HashSet `HashSet`是基于哈希表实现的Set(集合)实现,它不保证集合中元素的任何特定顺序。`HashSet`...
HashMap, HashTable, LinkedHashMap, TreeMap 的区别 在 Java 中,Map 是一个非常重要的集合类,用于存储键值对。其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和...
在Java编程语言中,`HashMap`、`TreeMap`和`LinkedHashMap`都是`java.util.Map`接口的实现,它们提供了不同的数据存储和访问策略。本文将深入探讨这三种数据结构的特点、工作原理以及适用场景。 1. **HashMap** `...
Java 中的 Map、HashMap、TreeMap 使用详解 Map 是 Java 集合框架中的一个接口,用于存储键值对,根据键可以获取值。Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 ...
Hashtable与HashMap类似,也是基于哈希表的,但它在Java早期版本中就已经存在,并且是线程安全的。由于同步机制的存在,Hashtable的性能相比HashMap较低,现在在多线程需求下,通常更推荐使用ConcurrentHashMap,它...
TreeMap与HashMap不同的是,TreeMap的元素是根据键的自然排序或通过Comparator提供的排序来维护键的有序性。TreeMap提供了对排序映射操作的完全控制,因此它比HashMap更适合在需要排序和按键顺序访问元素的场景中...
Java 中的 HashMap 和 TreeMap 选择指南 在 Java 中,HashMap 和 TreeMap 都是常用的 Map 实现类,但是在实际开发中,选择哪种 Map 实现类往往让人感到迷茫。下面我们将详细介绍 HashMap 和 TreeMap 的特点、优缺点...
8. **特性和性能**:与HashMap相比,TreeMap的插入和查找速度较慢,但由于其有序性,对于需要保持数据排序的应用来说,TreeMap是一个更好的选择。在内存使用方面,由于需要存储额外的排序信息,TreeMap通常比HashMap...
- 使用`TreeMap`:创建一个`TreeMap`对象并传入`ByValueComparator`作为构造函数参数,然后将`HashMap`的所有键值对放入`TreeMap`中。 - 使用`Collections.sort()`:创建一个包含所有键的`ArrayList`,然后调用`...
与HashMap相比,TreeMap使用了红黑树数据结构,保证了插入、删除和查找操作的O(log n)时间复杂度。TreeMap中的元素是按照键的自然顺序或者比较器的顺序排序的,因此在迭代时会返回有序的结果。 在示例代码中,我们...
- 如果对HashMap进行大量的排序操作,考虑使用TreeMap,它默认按照key的自然顺序排序,也可以自定义Comparator。 **5. 结论** HashMap排序并不是HashMap本身的功能,而是通过其他手段实现的。根据实际需求,可以...
在Java编程中,HashMap、HashSet、TreeMap和TreeSet是四种常见的集合类,它们各自有特定的用途和内部实现机制。这些数据结构用于存储和管理数据,其中HashMap和HashSet是基于哈希表实现的,而TreeMap和TreeSet则是...
- "讲义"可能系统地介绍了HashMap的基础知识,如插入、查找和删除的步骤,以及HashMap与其他数据结构(如TreeMap)的区别。 通过深入研究这些资源,开发者可以更好地掌握HashMap的使用技巧,避免常见的性能问题,并...
本文将详细介绍HashMap的底层原理,包括其内部实现结构、关键字段的作用、以及JDK 1.7和JDK 1.8版本的主要区别。 首先,HashMap是基于哈希表的Map接口非同步实现,它允许使用null值和null键,这意味着HashMap在设计...
3. **容量与负载因子**:`HashMap`有一个初始容量(默认为16)和负载因子(默认为0.75)。当元素数量达到容量与负载因子的乘积时,`HashMap`会自动进行扩容,将容量翻倍。 4. **键值对**:键(Key)必须实现`...
HashMap是最常用的Map实现,它提供了快速的查找,但不保证元素的顺序,且允许null键和值。TreeMap则按Key的自然排序或自定义排序存储元素,适合需要排序的场景。HashTable是线程安全的,但效率相对较低,不推荐在单...