import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Hashtable;
import java.util.TreeMap;
public class Test {
public static void main(String[] args) {
//hashmap,它是无序的。,
Map map = new HashMap();
map.put("a", "aaa");
map.put("b", "bbb");
map.put("c", "ccc");
map.put("d", "ddd");
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
Object key = iterator.next();
System.out.println("map.get(key) is :" + map.get(key));
}
//hashtale,它也是无序的。
Hashtable tab = new Hashtable();
tab.put("a", "aaa");
tab.put("b", "bbb");
tab.put("c", "ccc");
tab.put("d", "ddd");
Iterator iterator_1 = tab.keySet().iterator();
while (iterator_1.hasNext()) {
Object key = iterator_1.next();
System.out.println("tab.get(key) is :" + tab.get(key));
}
//treemap,它是有序的
TreeMap tmp = new TreeMap();
tmp.put("a", "aaa");
tmp.put("b", "bbb");
tmp.put("c", "ccc");
tmp.put("d", "ddd");
Iterator iterator_2 = tmp.keySet().iterator();
while (iterator_2.hasNext()) {
Object key = iterator_2.next();
System.out.println("tmp.get(key) is :" + tmp.get(key));
}
//arrayList,它是有序的
ArrayList arrayList=new ArrayList();
arrayList.add("aaa");
arrayList.add("bbb");
arrayList.add("ccc");
arrayList.add("ddd");
Collections.sort(arrayList);
for(int i=0;i<arrayList.size();i++){
System.out.println(arrayList.get(i));
}
}
}
分享到:
相关推荐
`HashMap`是一种基于哈希表实现的`Map`接口,提供了一个非同步的、允许使用`null`键和值的存储结构。`HashMap`通过计算对象的哈希码来存储和检索对象,这使得数据可以在常数时间内被访问。 - **特点**: - **非...
【HashMap、Hashtable、TreeMap详解】 HashMap、Hashtable和TreeMap都是Java中实现Map接口的类,它们用于存储键值对数据,但各自具有不同的特点和使用场景。 HashMap是最常用的Map实现,它通过哈希表(散列表)...
LinkedHashMap 也是一个 HashMap,但是内部维持了一个双向链表,可以保持顺序。LinkedHashMap 的输出顺序与输入顺序保持一致。LinkedHashMap 的实现类似于 HashMap,但是它维持了一个双向链表,以便于维持顺序。 ...
HashMap是一种基于哈希表的集合类,它的存储结构是一个数组,每个元素是一个单链表的头节点,链表用来解决hash地址冲突问题。HashMap有四个构造方法,其中初始容量和加载因子是影响性能的重要参数。加载因子是哈希表...
在这个例子中,`LinkedHashMap`保持了插入顺序,即使有重复的键,如`"gdsf"`,后插入的值会覆盖前一个,但插入顺序依然保留。 总结起来,`HashMap`适合于对顺序无要求且需要高效查找的场景;`TreeMap`适用于需要...
在这个例子中,Dog对象的颜色字符串实现了Comparable接口,所以按照字母顺序排序。 HashTable HashTable是线程安全的,这意味着它在多线程环境下可以直接使用,无需额外的同步措施。但要注意,HashTable不允许null...
Node[] table是HashMap的核心,它是一个Node数组,数组的每一个元素都是一个Node对象,每个Node对象可以包含一个key-value键值对。Node是HashMap的内部类,它实现了Map.Entry,V>接口。 HashMap的扩容机制在JDK 1.8...
在Java编程中,HashMap是基于哈希表实现的Map接口的一个实现,它是Java集合框架的重要组成部分,提供了高效、快速的键值对存储和检索能力。HashMap允许任何类型的对象作为键和值,但要求键必须是唯一的,且键和值都...
它的底层结构是链表散列,也就是一个数组结构然后每个数组结构里包含的一个链表。我们平常直接叫它“键值(key——value)”结构。 map的实现接口有有不少,比如: HashMap Hashtable TreeMap LinkedHashMap 我们...
- **允许`null`值**:`HashMap`允许一个`null`键和多个`null`值,而`Hashtable`都不允许。 - **迭代器遍历顺序**:`HashMap`的迭代器遍历顺序是不确定的,`Hashtable`也一样。 总结,`Hashtable`是Java中一个基础且...
2. **哈希冲突**:当两个键的哈希值相同时,HashMap使用链地址法处理冲突,即将相同哈希值的键值对放在同一个链表中。如果冲突频繁,链表会变长,查找效率降低,此时HashMap的行为接近于链表,最坏情况下时间复杂度...
集合框架包含collection和map的子类。其中collection包含list、set和queue。map包括hashmap、hashtable和treemap
"Java 集合框架详解" ...HashMap 是一个基于数组和链表组成的 Map,LinkedHashMap 继承自 HashMap,並且增加了一条双向链表,使得上面的结构可以保持键值对的插入顺序。HashTable 是一个基于数组和链表组成的 Map。
在Java编程语言中,`HashMap`、`TreeMap`和`Hashtable`是三种常见的集合类,它们都实现了`Map`接口,用于存储键值对数据。理解这些类的区别和应用场景对于提升Java开发技能至关重要。 首先,`HashMap`是Java中最...
在Java编程语言中,`Hashtable`是`Dictionary`类的一个具体实现,它是早期Java版本中的一个线程安全的键值对存储容器。`Hashtable`遵循了一些基本的映射概念,如存储键值对、根据键查找值以及添加、删除键值对等。...
HashMap 是一个基于哈希表的集合类,HashTable 是一个线程安全的基于哈希表的集合类,TreeMap 是一个基于树形结构的集合类。 三、Collections Collections 是 Java 中提供的一个工具类,提供了对集合类的操作方法...
`Hashtable`是Java集合框架中的一员,它是一个线程安全的键值对存储容器,但随着Java的发展,一些其他的数据结构如`HashMap`、`ConcurrentHashMap`等因其特定优势而更受青睐。 `Hashtable`的主要特点包括: 1. **...