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,V表示此映射映射到的值的类型。

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
	}
}
posted @ 2023-02-14 18:00  我不知道取什么名字好  阅读(20)  评论(0编辑  收藏  举报