HashMap

   I.HashMap

   The function of HashMap in Java is similar to the map in C++ and the dictionary in Python.

    Characteristic:

1.The key word can't be repeated,and the computer'll set the value with the latest key word input.

2.Data in HashMap is an unordered list.

  3.It was created by sequence.

4.It's not thread-safe.

Code:

public class pro_35 {

	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put(3, "北京");
		map.put(2, "上海");
		map.put(1, "广州");
		map.put(null, "武汉");
		map.put(null, null);    //键值允许是null
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		while(it.hasNext())
		{
			Object obj = it.next();
			System.out.println(obj+"="+map.get(obj));
		}
	}		
}
    Output:

null=null
1=广州
2=上海
3=北京


   II.LinkedHashMap

Characteristic:

1.It was created by linked list,so its structure is discrete.

2.Data in LinkedHashMap are stored in insertion order.

3.It's not thread-safe.

Code:

import java.util.*;
public class pro_35 {

	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put(2, "上海");
		map.put(1, "广州");
		map.put(3, "北京");
		map.put(null, "武汉");
		map.put(null, null);
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		//
		while(it.hasNext())
		{
			Object obj = it.next();
			System.out.println(obj+"="+map.get(obj));
		}
	}		
}



   III.HashTable

Characteristic:

1.Both Key word and its value can't be null.

2.Data in HashTable is an unordered list.

3.It's thread-safe.

Code:

package pro_916;
import java.util.*;
public class HashTable {

	public static void main(String[] args) {
		Hashtable map = new Hashtable();
		map.put(1, "北京");
		map.put("1", "上海");
		map.put(5, "广州");
		map.put(3, "西安");
		//map.put(null, "武汉");
		//map.put(null, null);
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		//
		while(it.hasNext())
		{
			Object obj = it.next();
			System.out.println(obj+"="+map.get(obj));
		}
	}

}
    IV.TreeMap

Characteristic:

1. It was created based on the Red-Black tree.

2.Both Key-word can't be null and the type of key-word must be same.
3. Data in TreeMap aresorted in an ascending sequence by the value of ascii

Code:

<span style="font-size:24px;">import java.util.*;
public class HashTable {

	public static void main(String[] args) {
		TreeMap map = new TreeMap();
		map.put(1, "北京");
	//	map.put("1", "上海");
		map.put(5, "广州");
		map.put(3, "西安");
	//	map.put(null, "武汉");
		map.put(6, null);
	//	map.put(null, null);
		Set keys = map.keySet();
		Iterator it = keys.iterator();
		//
		while(it.hasNext())
		{
			Object obj = it.next();
			System.out.println(obj+"="+map.get(obj));
		}
	}

}</span>
Output:

  1=北京
3=西安
5=广州
6=null


### Java 中 HashMap 的使用方法 #### 1. **简介** `HashMap` 是 Java 集合框架中的一个重要类,用于存储键值对(key-value pair)。它的底层基于哈希表实现,提供了快速的查找、插入和删除操作。`HashMap` 不保证元素的顺序,并允许一个 `null` 键和多个 `null` 值。 #### 2. **基本操作** 以下是 `HashMap` 的一些常用方法及其功能: - **put(key, value)**: 将指定的键值对存入 `HashMap`。 - **get(key)**: 返回与指定键关联的值。 - **remove(key)**: 移除指定键对应的映射关系。 - **size()**: 返回 `HashMap` 中键值对的数量。 - **clone()**: 创建并返回该 `HashMap` 对象的一个副本。 - **isEmpty()**: 如果此 `HashMap` 映射不包含任何键值对,则返回 true。 这些方法的具体用法可以通过下面的例子来说明。 --- #### 3. **示例代码** ##### 示例 1: 添加键值对并获取大小 ```java // Java program to demonstrate the use of size() method in HashMap import java.util.*; public class SizeExample { public static void main(String[] args) { // Create an empty HashMap Map<Integer, String> map = new HashMap<>(); // Add key-value pairs using put() map.put(10, "C"); map.put(20, "C++"); map.put(50, "JAVA"); map.put(40, "PHP"); map.put(30, "SFDC"); // Print the HashMap content System.out.println("HashMap Content: " + map); // Get the number of entries in the HashMap int size = map.size(); System.out.println("Size of HashMap: " + size); } } ``` 这段代码展示了如何向 `HashMap` 插入数据以及计算其大小[^1]。 --- ##### 示例 2: 删除特定键值对 ```java // Java program to demonstrate the removal operation in HashMap import java.util.*; public class RemoveExample { public static void main(String[] args) { // Initialize a HashMap with some data Map<Integer, String> map = new HashMap<>(); map.put(10, "C"); map.put(20, "C++"); map.put(50, "JAVA"); map.put(40, "PHP"); map.put(30, "SFDC"); // Display initial state System.out.println("Initial HashMap: " + map); // Remove entry associated with key '50' map.remove(50); // Show updated HashMap after deletion System.out.println("Updated HashMap after removing key '50': " + map); } } ``` 这里演示了如何移除某个键所对应的数据项[^2]。 --- ##### 示例 3: 复制一份新的 HashMap 实例 ```java // Example demonstrating cloning functionality within HashMaps. import java.util.*; public class CloneExample { public static void main(String[] args) { // Original HashMap creation and population HashMap<Integer, String> originalMap = new HashMap<>(); originalMap.put(10, "C"); originalMap.put(20, "C++"); originalMap.put(50, "JAVA"); originalMap.put(40, "PHP"); originalMap.put(30, "SFDC"); // Cloning process begins here HashMap<Integer, String> clonedMap = (HashMap<Integer, String>)originalMap.clone(); // Output both maps post-cloning action System.out.println("Original HashMap Contents: " + originalMap); System.out.println("Cloned HashMap Contents: " + clonedMap); } } ``` 本部分解释了复制现有 `HashMap` 的过程[^3]。 --- #### 4. **性能特点与其他注意事项** 由于 `HashSet` 内部依赖于 `HashMap` 来管理其成员集合,因此它们共享相似的时间复杂度特性——平均情况下 O(1),最坏情况取决于冲突处理机制[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值