HashMap和HashTable都实现Map接口。HashMap允许键和值为null,但HashTable不行。两者的键都不能重复。
import java.util.HashMap;
import java.util.Hashtable;
public class MapTest {
/**
* @param args
*/
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("num1", "1");
hashMap.put("num2", "2");
hashMap.put("num3", "3");
hashMap.put(null, "0");
hashMap.put("num0", null);
System.out.println(hashMap.get(null));
System.out.println(hashMap.get("num0"));
}
}
输出:
0
null
HashMap允许键和值为空。
import java.util.HashMap;
import java.util.Hashtable;
public class MapTest {
/**
* @param args
*/
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("num1", "1");
hashMap.put("num2", "2");
hashMap.put("num3", "3");
hashMap.put(null, "0");
hashMap.put("num0", null);
System.out.println(hashMap.get(null));
System.out.println(hashMap.get("num0"));
Hashtable<String, String> hashTable = new Hashtable<String, String>();
hashTable.put("num0", null);
hashTable.put(null, "0");
}
}
结果出异常,不管是值为空,或者键为空都会出现异常。
常用的方法示例:
import java.util.HashMap;
import java.util.Hashtable;
public class MapTest {
/**
* @param args
*/
public static void main(String[] args) {
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("num1", "1");
hashMap.put("num2", "2");
hashMap.put("num3", "3");
hashMap.put(null, "0");
hashMap.put("num0", null);
System.out.println(hashMap.get(null));
System.out.println(hashMap.get("num0"));
Hashtable<String, String> hashTable = new Hashtable<String, String>();
hashTable.put("num0", "0");
hashTable.put("num1", "1");
hashTable.put("num2", "2");
hashTable.put("num3", "3");
System.out.println(hashMap.containsKey("num1"));
System.out.println(hashMap.containsValue("1"));
System.out.println(hashTable.containsKey("num1"));
System.out.println(hashTable.containsValue("1"));
}
}
输出:
0
null
true
true
true
true
分享到:
相关推荐
HashMap 和 Hashtable 是 Java 中两种常用的哈希表数据结构,它们都是用来存储键值对的数据结构,但它们在设计和实现上有显著的区别。以下是对这两者差异的详细解释: 1. **线程安全性**: - `Hashtable` 是线程...
2、相比网站上发布过的hashtable之类的源码: 此HashMap寻址方法是拉链法.比开放寻址法对连续内存要求更低 哈希函数用的是java中String.hashCode()算法(经实际验证其碰撞率极低且相近的文本散列值相邻,存取的效率更高...
本篇文章将详细探讨`HashMap`, `LinkedHashMap`, `TreeMap`, 和 `Hashtable`这四个常见的Map实现类,特别是它们如何处理排序的问题。 首先,`HashMap`是最常用的Map实现,它不保证元素的顺序,插入顺序和遍历顺序...
Map虽然也叫集合,但是它却不是Collection的子接口。它的底层结构是链表散列,也...HashMap map = new HashMap<>(); map.put("name", "大妖怪"); map.put("age", "100"); 复制代码 查询元素:get(key) HashMap m
HashMap、HashTable和TreeMap是常见的Map实现。HashMap是非线程安全但性能较高的实现,key和value都可能为null;HashTable是线程安全的,但效率较低;TreeMap基于红黑树,所有key自动排序,是有序的。HashMap与...
- Hashtable继承自Dictionary类,而HashMap实现了Map接口。 掌握以上这些Java核心概念和特性,能有效提高你在面试中的竞争力。同时,不断实践和深入理解这些知识点,才能在实际开发中游刃有余。
根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...
同时,讲解了核心集合库,如List、Set、ArrayList、Vector、HashSet、TreeSet以及Map接口的实现,如HashMap、Hashtable和TreeMap,以及泛型的应用。 6. **异常处理机制**:介绍异常分类、编译型和运行时异常,异常...
HashMap和Hashtable的主要区别在于线程安全性、null值处理以及哈希处理方式。Treemap则通过红黑树保证元素按照键的自然顺序或者自定义比较器进行排序。 **解决哈希冲突的四种方法**: 1. **开放地址法**:当哈希...
21.HashMap 和 Hashtable 有什么区别? 22.如何决定使用 HashMap 还是 TreeMap? 23.说一下 HashMap 的实现原理? 24.说一下 HashSet 的实现原理? 25.rrayList 和 LinkedList 的区别是什么? 26.如何
HashMap、TreeMap和Hashtable是Map接口的主要实现,HashMap提供快速的查找,TreeMap则按照键的自然顺序或定制的比较器进行排序,而Hashtable是同步化的,与早期的Java 1容器类似,但在Java 2中已被HashMap取代。...
2. **Map接口**:不同于List和Set,Map接口存储键值对,如HashMap、TreeMap和ConcurrentHashMap。Map中的键是唯一的,而值可以重复。 3. **ArrayList与LinkedList的区别**:ArrayList基于动态数组实现,插入和删除...
4. **HashMap与HashTable**:HashMap是HashMap类的一个实例,它实现了Map接口,允许null键和值,非同步。HashTable是早期的字典类,同步,不允许null键和值。HashMap使用Iterator迭代,而HashTable使用Enumeration...
HashMap、TreeMap、LinkedHashMap和Hashtable是Map接口的主要实现类。HashMap是无序的,允许null键和值;TreeMap是有序的,按键的自然排序或自定义比较器排序;LinkedHashMap保持插入顺序或访问顺序;Hashtable是...
- `HashMap`是非线程安全的,它的性能通常优于`Hashtable`,并且允许使用null键和null值。 - `HashMap`实现了`Map`接口,提供了一种键值对的存储方式,可以通过键快速检索值。 2. **HashMap的基本操作** - **...
### Java高频面试题汇总——Hashtable、HashMap、ConcurrentHashMap 区别详解 #### 一、概述 在Java编程中,`Hashtable`, `HashMap`, `ConcurrentHashMap`这三种集合类非常常见,它们提供了键值对的数据存储方式。...
集合类部分则要求熟悉Set、Collection、Map、List接口,以及HashSet、ArrayList、Vector、HashMap和HashTable等具体实现。数据库部分主要围绕JDBC API,包括DriverManager、Connection、Statement、...
### Java基础知识面试题详解 #### 1. Java基础概念 - **什么是类、对象?** - 类是具有相似属性和行为的对象的集合,是一种抽象的概念。...- `Hashtable`继承自`Dictionary`类,而`HashMap`实现了`Map`接口。
此外,`Hashtable`继承自`Dictionary`类,而`HashMap`继承自`AbstractMap`并实现了`Map`接口。 `Collection`和`Collections`看起来相似,但实际上它们是不同的。`Collection`是所有集合框架接口的根接口,表示一组...