`

HashMap用法熟悉

 
阅读更多
HashMap排列没有按一定规则示例代码:
public class HashMaps {

	public static void main(String[] args) {

		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));
		}

		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 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));
		}
	}

}


如果以对象作为key,需要重写作为key对象的hashCode()和equals()方法,示例代码:

public class Exp2 {

	public static void main(String[] args) {
		HashMap h2 = new HashMap();
		for (int i = 0; i < 10; i++) {
			h2.put(new Element(i), new Figureout());
		}
		System.out.println("h2:");
		System.out.println("Get the result for Element:");
		Element test = new Element(5);
		if (h2.containsKey(test)) {
			System.out.println((Figureout) h2.get(test));
		} else {
			System.out.println("Not found!");
		}
	}

}

class Element {
	int number;

	public Element(int n) {
		number = n;
	}

	public int hashCode() {
		return number;
	}

	public boolean equals(Object o) {
		return (o instanceof Element) && number == ((Element) o).number;

	}
}

class Figureout {
	Random r = new Random();
	boolean possible = r.nextDouble() > 0.5;

	public String toString() {
		if (possible) {
			return "OK!";
		} else {
			return "Impossible!";
		}
	}
}
分享到:
评论

相关推荐

    delphi hashmap集合

    Delphi的HashMap集合是一种高效的数据结构,用于存储键值对,它通过哈希函数实现快速查找,这使得在大量数据中查找特定元素的时间复杂度接近...熟悉其内部工作原理和API用法,能帮助开发者编写出更加高效和健壮的代码。

    Java习惯用法总结编程小技巧共14页.pdf.zip

    4. **集合框架**:Java集合框架包括List、Set、Map等接口和实现,如ArrayList、HashSet、HashMap等。了解它们的区别、性能特点以及如何选择合适的集合类型是必要的。 5. **多线程编程**:Java提供了Thread类和...

    Map转JSON的jar包

    在Java编程中,数据转换是常见的操作之一,特别是在处理数据序列化和反序列化时。JSON(JavaScript Object Notation)是一种轻量级的数据交换...无论选择哪个库,了解其基本用法和高级特性对于提高开发效率至关重要。

    Java面试题合集最新版2024.zip

    控制流语句:熟悉if-else、switch、for、while等控制流语句的用法。 面向对象编程:深入理解Java中的类、对象、继承、封装和多态等概念。 异常处理:了解try-catch-finally块的使用,以及自定义异常的处理。 二、...

    Java面试要点(适用于2年以上经验,1年亦可)

    4. 熟悉 Java String 的使用,熟悉 String 的各种函数 5. JDK 6 和 JDK 7 中 substring 的原理及区别、replaceFirst、replaceAll、replace 区别 6. String.valueOf 和 Integer.toString 的区别、字符串的不可变性 7....

    2023Java面试题库,解决你的面试烦恼

    - 了解ArrayList、LinkedList、HashSet、HashMap等集合类的区别和应用场景。 - 熟悉List、Set、Map接口及其实现类的特性。 - 掌握集合的遍历方式,如迭代器和增强for循环。 - 学习并发集合,如ConcurrentHashMap...

    11个java面试题及面试技巧

    - 熟悉ArrayList、LinkedList、HashSet、HashMap等集合类的特性和使用场景。 - 理解迭代器的用途,以及List和Set的区别。 7. **多线程**: - 掌握线程的创建方式(Thread类和Runnable接口),理解线程同步和互斥...

    2009年java认证考试重点指导

    3. 字符流:熟悉Reader和Writer类及其子类的用法。 4. 对象序列化:学习如何实现Serializable接口以进行对象的序列化和反序列化。 六、多线程 1. 线程概念:理解并发和多线程的概念,了解Thread类和Runnable接口。 ...

    Java常见的面试题,提前准备,提前熟悉,面试亮剑

    理解它们的区别和用法是基础。 - **变量、常量与作用域**:了解变量的声明、初始化以及作用域的概念。 - **流程控制**:掌握if-else、switch、for、while等控制结构。 - **方法**:理解方法的定义、参数传递以及...

    java技术储备,如何提升自己

    1. HashMap:了解 HashMap 的扩容原理和实现机制。 2. ConcurrentHashMap:了解 ConcurrentHashMap 的原理和实现机制。 多线程 1. Synchronize 和 Lock:了解 Synchronize 和 Lock 的区别与用法。 2. wait() 和 ...

    java笔试面试题目

    理解面向对象编程的基本概念,掌握异常处理机制,熟悉构造器、final关键字的用法。 2. **数据结构与算法**:了解数组、链表、栈、队列、树(二叉树、平衡树如AVL、红黑树)、图等基本数据结构,以及排序(冒泡、...

    Java面试必备知识4.docx.zip

    4. **集合框架**:熟悉ArrayList、LinkedList、HashSet、HashMap等常用集合类,了解它们的特性、性能差异以及应用场景。理解并发环境下集合类的线程安全问题。 5. **多线程**:理解线程的概念,掌握Thread类和...

    经典JAVA试题

    4. **数组与集合**:熟悉数组的创建、遍历和操作,理解ArrayList、LinkedList、HashSet、HashMap等集合框架的使用。 5. **异常处理**:理解异常的分类,如检查性异常和运行时异常,掌握try-catch-finally语句的用法...

    Java面试-准备指南

    - 熟悉ArrayList、LinkedList、HashSet、HashMap等基本集合类的实现和操作。 - 了解并发容器,如ConcurrentHashMap和CopyOnWriteArrayList,并理解其在多线程环境中的应用。 5. **多线程** - 理解线程的基本概念...

    Java面试宝典合集,内容详细

    3. 数据类型:熟悉基本数据类型(整型、浮点型、字符型、布尔型)及其用法,以及引用数据类型(类、接口、数组)的区别。 4. 控制流:熟练掌握if语句、switch语句、循环(for、while、do-while)的使用。 5. 异常...

    Java集合排序及java集合类详解.pdf

    在文档《Java集合排序及java集合类详解.pdf》中,虽然由于OCR扫描的原因,内容存在一些文字错误和漏识别,但可以推断该文档详细讲解了Java集合类的各个接口以及实现类的特点、用法以及它们之间的区别,并且详细介绍...

    java面试宝典.zip

    4. **集合框架**:熟悉ArrayList、LinkedList、HashSet、HashMap等数据结构的特性,知道它们的底层实现原理,比如ArrayList是基于数组,HashMap是基于哈希表。了解并发环境下集合的使用,如ConcurrentHashMap和...

    java程序员笔试题大全

    - 掌握ArrayList、LinkedList、Vector、HashMap、HashSet、TreeMap、TreeSet等常用集合类的特性和使用场景。 - 理解List、Set、Map接口及其实现类之间的区别。 - 熟悉集合操作,如添加、删除、查找、遍历等,并能...

    Java新手练习的小项目

    在小项目中,新手可以尝试编写一些简单的算法,比如计算阶乘、查找数组中的最大值或最小值,以熟悉这些流程控制语句的用法。 异常处理是Java编程中不可或缺的一部分。通过练习,新手可以了解如何使用try-catch-...

    JAVA面试题集

    - 了解字节流和字符流的区别,以及FileInputStream、FileOutputStream、BufferedReader、BufferedWriter等常用类的用法。 - 掌握NIO(New IO)和AIO(Asynchronous IO)的特点和应用场景。 - 熟悉序列化和反序列...

Global site tag (gtag.js) - Google Analytics