HashMap
HashMap
1.HashMap介绍
基于哈希表的Map接口的实现。 此实现提供了所有可选的映射操作,并允许null值和null键。 ( HashMap类大致相当于Hashtable ,除了它是不同步的并且允许空值。)
2, HashMap的方法
2.1, void clear()
清除此映射中的所有键值映射关系。
import java.io.IOException;
import java.util.HashMap;
public class Main {
public static void main(String[] args) throws IOException {
HashMap<Integer, String> hmap = new HashMap<Integer, String>();
hmap.put(12, "Chaitanya");
hmap.put(2, "Rahul");
hmap.put(7, "Singh");
hmap.put(49, "Ajeet");
hmap.put(3, "Anuj");
System.out.println("Hashmap before using clear() : "+ hmap);
// using clear() to clear the HashMap
hmap.clear();
System.out.println("Hashmap After using clear() : "+ hmap);
}
}
2.2,Object clone()-浅拷贝
返回此 HashMap
实例的浅表副本:未克隆键和值本身。相当于只复制HashMap对象地址,未复制key和value本身。
import java.util.HashMap;
public class Main {
public static void main(String[] args){
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
HashMap<String, Integer> cloned = (HashMap<String, Integer>)map.clone();
System.out.println(cloned); // 输出:{A=1, B=2, C=3}
}
}
2.3, boolean containsKey(Object key)
containsKey方法用于判断指定键是否存在于Map中,如果存在则返回true,否则返回false。
import java.util.HashMap;
public class Main {
public static void main(String[] args){
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "Jack");
map.put(2, "Rose");
map.put(3, "Lucy");
System.out.println("Map集合中Key'2'是否存在: "+map.containsKey(2));
System.out.println("Map集合中Key'4'是否存在: "+map.containsKey(4));
}
}
//输出结果
Map集合中Key'2'是否存在: true
Map集合中Key'4'是否存在: false
2.4, boolean containsValue(Object value)
java的HashMap的containsValue方法用于检测某个值是否在HashMap中,如果存在指定的值,返回true,否则返回false 。
import java.util.HashMap;
public class Main {
public static void main(String[] args){
HashMap<Integer,String> hmap = new HashMap<Integer,String>();
hmap.put(11,"Apple");
hmap.put(22,"Mango");
hmap.put(33,"Banana");
hmap.put(44,"Grapes");
hmap.put(55,"Guava");
// checking value for existence
boolean flag = hmap.containsValue("Apple");
System.out.println("Value exists : "+flag);
// checking value for non-existence
flag = hmap.containsValue("Strawberry");
System.out.println("Value exists : "+flag);
}
}
//结果输出
2.5.Object get(Object key)
返回指定键映射的值,如果此映射不包含此键的映射关系,则返回null。
import java.util.HashMap;
public class Main {
public static void main(String[] args){
HashMap<Integer,String> hmap = new HashMap<Integer,String>();
hmap.put(11,"Apple");
hmap.put(22,"Mango");
Object ss = hmap.get(11);
System.out.println(ss);
}
}
2.6 boolean isEmpty()
如果此映射不包含键值映射关系,则返回true。
2.7 Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射的 Set 视图,Set 视图意思是 HashMap 中所有的键值对都被看作是一个 set 集合
import java.util.HashMap;
import static java.util.HashMap.*;
class Main {
public static void main(String[] args) {
// 创建一个 HashMap
HashMap<Integer, String> sites = new HashMap<>();
// 往 HashMap 添加一些元素
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("sites HashMap: " + sites);
// 返回映射关系中 set view
System.out.println("Set View: " + sites.entrySet());
for (Entry entry : sites.entrySet()) {
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("key: "+key+" value :"+value);
}
}
}
2.8 Set< K > keySet()
所述的keySet()方法被用来获得此映射中包含的键的Set视图。即返回key的集合
import java.util.HashMap;
import java.util.Set;
class Main {
public static void main(String[] args) {
// 创建一个 HashMap
HashMap<Integer, String> sites = new HashMap<>();
// 往 HashMap 添加一些元素
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
Set<Integer> keyset = sites.keySet();
System.out.println(keyset);
}
}
2.9 V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction)
merge
方法用于合并两个map,如果某个key在两个map中都存在,将对应的value值使用给定的BiFunction函数进行合并处理,最终将结果设置为key对应的value值,如果key在另一个map中不存在,则直接将他放入map中。
import java.util.HashMap;
import java.util.Map;
class Main {
public static void main(String[] args) {
Map<String, Integer> map1 = new HashMap<>();
map1.put("A", 1);
map1.put("B", 2);
map1.put("C", 3);
Map<String, Integer> map2 = new HashMap<>();
map2.put("A", 4);
map2.put("C", 5);
map1.merge("A", 10, Integer::sum);
System.out.println(map1); // {A=11, B=2, C=3}
map2.merge("D", 7, Integer::sum);
System.out.println(map2); // {A=4, C=5, D=7}
}
}
2.10 V put(K key, V value)
put() 方法用于向map中添加元素,返回值与旧键值对联的value值。
2.11 putAll(Map<? extends K,? extends V> m)
putAll()方法的作用是将指定的映射中的所有映射关系(键-值对)复制到当前映射(调用putAll方法的映射实例)中,如果在调用putAll时当前映射中已经存在有相同的键,它的值将由映射中的值替换掉
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String, String> hm1 = new HashMap<String, String>();
hm1.put("1", "a");
hm1.put("2", "b");
HashMap<String, String> hm2 = new HashMap<String, String>();
hm2.put("2", "d");
hm2.put("3", "c");
hm1.putAll(hm2);
// hm1中现在包含 {1=a, 2=d, 3=c}
System.out.println(hm1);
}
}
2.12 V remove(Object key)
从此映射中删除指定键的映射(如果存在)。 (delete)
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String,String> map = new HashMap<String,String>();
map.put("1","one");
map.put("2","two");
//remove
String value = map.remove("1");
System.out.println("value : " + value);
System.out.println("New map : " + map);
}
}
2.13 Collection values()
values()方法是Java中HashMap类的一个方法,用于返回此映射中包含的值的集合,其返回值类型为Collection
import java.util.Collection;
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
Collection<Integer> values = map.values();
System.out.println(values);
}
}
2.14 int size()
size()方法是用来获取HashMap中的键值对的数目。
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
int size = map.size();
System.out.println("Total number of key-value pairs: " + size);
//输出:Total number of key-value pairs: 3
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探