package cn.edu.hit.soft.study;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapTable {
public static void main(String[] args) {
Map map = new HashMap();
Hashtable table = new Hashtable();
map.put("map_key_1", "value_1");
map.put( "map_key_2", null);
table.put("table_key_1", "table_value_1");
table.put("table_key_2", "table_value_2");
//table.put("table_key_3", null); /**table中允许有null( key和value中任一)*/
Set map_ety = map.entrySet();
//HashMap 和Hashtable 中元素在遍历的时候是后进先出,栈的结构
for(Iterator iter = map_ety.iterator(); iter.hasNext(); ){
Map.Entry ety = (Map.Entry)iter.next();
System.out.println(ety.getKey() + "====" + ety.getValue());
}
for( Enumeration e = table.keys(); e.hasMoreElements(); ){
String key = (String)e.nextElement();
System.out.println( key + "=====" + table.get(key));
}
}
}
运行结果:
map_key_2====null
map_key_1====value_1
table_key_2=====table_value_2
table_key_1=====table_value_1
分享到:
相关推荐
这个例子展示了如何使用泛型`Hashtable`存储特定类型的键值对,以及如何插入、检索和遍历这些元素。通过理解并熟练运用`Hashtable`的泛型特性,我们可以编写出更安全、高效且易于维护的Java代码。在实际开发中,`...
Java中的`Hashtable`是`Dictionary`类的一个实现,它提供了一个基于哈希表的数据结构,允许我们通过键(key)来快速查找和操作值(value)。`Hashtable`类是线程安全的,因此可以在多线程环境中使用而无需额外的同步...
以下是一个简单的使用`Hashtable`和枚举器的例子: ```java import java.util.*; public class HashTableExample { public static void main(String[] args) { // 创建一个哈希表 Hashtable, Integer> table = ...
HashMap和Hashtable都是实现Map接口的例子。HashMap是非同步的,它允许快速的查找、插入和删除操作,平均时间复杂度为O(1)。HashMap不保证元素的顺序,且允许null键和null值。而Hashtable是线程安全的,它不允许null...
在Java编程语言中,`HashMap`、`TreeMap`和`LinkedHashMap`都是`java.util.Map`接口的实现,它们提供了不同的数据存储和访问策略。本文将深入探讨这三种数据结构的特点、工作原理以及适用场景。 1. **HashMap** `...
3. **HashMap和Hashtable的区别**:HashMap和Hashtable都是映射容器,HashMap更现代,支持空键值,而Hashtable不支持。Hashtable是线程安全的,HashMap不是。此外,Hashtable源自旧的Dictionary类,HashMap是Java ...
- 历史:Hashtable基于旧的Dictionary类,HashMap是Java 1.2引入的Map接口的实现。 - 同步性:Hashtable线程安全,HashMap不是。 - 值:HashMap允许null键和值,而Hashtable不允许。 3. **char类型与中文字符**...
- HashMap 和 Hashtable 类似,HashMap不是线程安全的,而Hashtable是。此外,Hashtable不允许null作为key或value,而HashMap则可以。 3. **char变量存储中文**: - Java使用Unicode编码,每个char占用16位,因此...
此外,随着Java语言的发展,现在推荐使用 `ArrayList`、`LinkedList` 和 `HashMap` 等集合框架中的类,它们提供了更简洁、更安全的迭代方式。对于线程安全的需求,可以考虑使用 `ConcurrentHashMap` 替代 `Hashtable...
`HashTable`就是线程安全的例子,而`HashMap`不是,因此在多线程环境使用`HashMap`时需要考虑同步问题。 9. **并发编程中的同步机制**:Java提供了多种同步机制,包括`synchronized`关键字、`wait()`, `notify()`和...
HashMap是最常用的Map实现,它提供了快速的查找,但不保证元素的顺序,且允许null键和值。TreeMap则按Key的自然排序或自定义排序存储元素,适合需要排序的场景。HashTable是线程安全的,但效率相对较低,不推荐在单...
HashMap 和 Hashtable 的区别** - **ArrayList 与 Vector** - **同步性**:Vector 是线程安全的,而 ArrayList 不是。Vector 使用 synchronized 关键字确保线程安全。 - **数据增长**:当需要扩容时,Vector 默认...
3. **HashMap和Hashtable的区别**:HashMap是Hashtable的一个现代版本,两者都是Java中的散列表实现。HashMap不保证元素顺序,允许null键值对,而Hashtable不接受null键值对,且是线程安全的。HashMap是Java 1.2引入...
- **HashMap vs Hashtable**:HashMap是Java 1.2引入的,非同步,允许null键值对;Hashtable是基于旧的Dictionary类,同步,不允许null键值对。 3. **char型变量与中文字符**:Java使用Unicode编码,每个char占据...
#### 二、ArrayList和Vector的区别, HashMap和Hashtable的区别 **ArrayList与Vector的主要区别:** - **同步性**: `Vector`是线程安全的,即它是同步的;而`ArrayList`是非线程安全的,即它不是同步的。 - **数据...