`
Javaloverlover
  • 浏览: 348310 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Map——HashMap和HashTable

    博客分类:
  • java
阅读更多
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
分享到:
评论

相关推荐

    java面试题——详解HashMap和Hashtable 的区别

    HashMap 和 Hashtable 是 Java 中两种常用的哈希表数据结构,它们都是用来存储键值对的数据结构,但它们在设计和实现上有显著的区别。以下是对这两者差异的详细解释: 1. **线程安全性**: - `Hashtable` 是线程...

    易语言-HashMap模块源码—— 高效随机存取数据结构 ,文本索引必备

    2、相比网站上发布过的hashtable之类的源码: 此HashMap寻址方法是拉链法.比开放寻址法对连续内存要求更低 哈希函数用的是java中String.hashCode()算法(经实际验证其碰撞率极低且相近的文本散列值相邻,存取的效率更高...

    java map实例,排序

    本篇文章将详细探讨`HashMap`, `LinkedHashMap`, `TreeMap`, 和 `Hashtable`这四个常见的Map实现类,特别是它们如何处理排序的问题。 首先,`HashMap`是最常用的Map实现,它不保证元素的顺序,插入顺序和遍历顺序...

    【后端】java基础(4.4)java中级基础之集合——Map

    Map虽然也叫集合,但是它却不是Collection的子接口。它的底层结构是链表散列,也...HashMap map = new HashMap&lt;&gt;(); map.put("name", "大妖怪"); map.put("age", "100"); 复制代码 查询元素:get(key) HashMap m

    JAVA容器总结

    HashMap、HashTable和TreeMap是常见的Map实现。HashMap是非线程安全但性能较高的实现,key和value都可能为null;HashTable是线程安全的,但效率较低;TreeMap基于红黑树,所有key自动排序,是有序的。HashMap与...

    java面试汇总--提高成功率的宝典

    - Hashtable继承自Dictionary类,而HashMap实现了Map接口。 掌握以上这些Java核心概念和特性,能有效提高你在面试中的竞争力。同时,不断实践和深入理解这些知识点,才能在实际开发中游刃有余。

    List set map集合容器的区别

    根据给定文件的信息,我们可以详细地探讨一下Java中几种主要的集合容器——List、Set以及Map的区别,并且深入了解它们各自的特性和应用场景。 ### 一、List #### 1. ArrayList - **特点**:`ArrayList`是基于动态...

    Java学习路线(csdn)————程序.pdf

    同时,讲解了核心集合库,如List、Set、ArrayList、Vector、HashSet、TreeSet以及Map接口的实现,如HashMap、Hashtable和TreeMap,以及泛型的应用。 6. **异常处理机制**:介绍异常分类、编译型和运行时异常,异常...

    集合总结.docx

    HashMap和Hashtable的主要区别在于线程安全性、null值处理以及哈希处理方式。Treemap则通过红黑树保证元素按照键的自然顺序或者自定义比较器进行排序。 **解决哈希冲突的四种方法**: 1. **开放地址法**:当哈希...

    Backend_development:JAVA进阶代码实例&最新面试题(看完涨薪2k+)

    21.HashMap 和 Hashtable 有什么区别? 22.如何决定使用 HashMap 还是 TreeMap? 23.说一下 HashMap 的实现原理? 24.说一下 HashSet 的实现原理? 25.rrayList 和 LinkedList 的区别是什么? 26.如何

    JAVA EE api 整理

    HashMap、TreeMap和Hashtable是Map接口的主要实现,HashMap提供快速的查找,TreeMap则按照键的自然顺序或定制的比较器进行排序,而Hashtable是同步化的,与早期的Java 1容器类似,但在Java 2中已被HashMap取代。...

    java基础之集合面试题共4页.pdf.zip

    2. **Map接口**:不同于List和Set,Map接口存储键值对,如HashMap、TreeMap和ConcurrentHashMap。Map中的键是唯一的,而值可以重复。 3. **ArrayList与LinkedList的区别**:ArrayList基于动态数组实现,插入和删除...

    个人于2016年开始整理的java常见面试笔试题(基础部分)

    4. **HashMap与HashTable**:HashMap是HashMap类的一个实例,它实现了Map接口,允许null键和值,非同步。HashTable是早期的字典类,同步,不允许null键和值。HashMap使用Iterator迭代,而HashTable使用Enumeration...

    JAVA-SE入门学习——第八讲集合

    HashMap、TreeMap、LinkedHashMap和Hashtable是Map接口的主要实现类。HashMap是无序的,允许null键和值;TreeMap是有序的,按键的自然排序或自定义比较器排序;LinkedHashMap保持插入顺序或访问顺序;Hashtable是...

    统计字符出现次数。统计字符出现次数

    - `HashMap`是非线程安全的,它的性能通常优于`Hashtable`,并且允许使用null键和null值。 - `HashMap`实现了`Map`接口,提供了一种键值对的存储方式,可以通过键快速检索值。 2. **HashMap的基本操作** - **...

    Java高频面试题汇总(精华版).pdf

    ### Java高频面试题汇总——Hashtable、HashMap、ConcurrentHashMap 区别详解 #### 一、概述 在Java编程中,`Hashtable`, `HashMap`, `ConcurrentHashMap`这三种集合类非常常见,它们提供了键值对的数据存储方式。...

    J2EE学习指南参考

    集合类部分则要求熟悉Set、Collection、Map、List接口,以及HashSet、ArrayList、Vector、HashMap和HashTable等具体实现。数据库部分主要围绕JDBC API,包括DriverManager、Connection、Statement、...

    java基础知识面试题

    ### Java基础知识面试题详解 #### 1. Java基础概念 - **什么是类、对象?** - 类是具有相似属性和行为的对象的集合,是一种抽象的概念。...- `Hashtable`继承自`Dictionary`类,而`HashMap`实现了`Map`接口。

    各大公司企业最新真实面试——IBM、SUN等公司的Java面试题集.doc

    此外,`Hashtable`继承自`Dictionary`类,而`HashMap`继承自`AbstractMap`并实现了`Map`接口。 `Collection`和`Collections`看起来相似,但实际上它们是不同的。`Collection`是所有集合框架接口的根接口,表示一组...

Global site tag (gtag.js) - Google Analytics