HashMap系列(一):常用方法

在做leetcode题目的时候,经常会用到哈希表,但是其常用方法的名字老是记不清楚,在这里我先总结一下HashMap的常用方法。我的学习方法是在了解一个知识点之前先学会用它,所以第一篇关于HashMap的博客以方法为主。 

 

目录

 添加键值对  put(key,value)

 根据Key值获取Value值 get(Key)

判断Map中是否有键值Key containsKey(Key)

判断是否含有Value  containsValue(Value)

更换键值为Key的Value

 删除键值为Key的Value remove(Key)

 判断为不为空 isEmpty()

添加另一个同一类型的map下的所有键值对

 删除这个key和value的键值对

putIfAbsent(Key, Value)

getOrDefault(key, defaultValue)


 添加键值对  put(key,value)

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		System.out.println(map);
    }
}
//输出
//{1=abc, 2=aaa}

 根据Key值获取Value值 get(Key)

如果没有该键值,则返回NULL

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		System.out.println(map.get(1));
    }
}
//输出
//abc

判断Map中是否有键值Key containsKey(Key)

如果没有该键值,则返回NULL

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		System.out.println(map.containsKey(1));
		System.out.println(map.containsKey(3));
    }
}
//输出
//true
//false

判断是否含有Value  containsValue(Value)

有返回true,无返回false

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		System.out.println(map.containsValue("abc"));
		System.out.println(map.containsValue(""));
    }
}
//输出
//true
//false

更换键值为Key的Value

有2种方法, replace(Key, newValue) 或者put(Key, newValue)

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		map.replace(1,"bbb");
		map.put(2,"ccc");
		System.out.println(map.get(1));
		System.out.println(map.get(2));
    }
}
//输出
//bbb
//ccc

 删除键值为Key的Value remove(Key)

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
		map.put(1,"abc");
		map.put(2,"aaa");
		map.remove(1);
		System.out.println(map.get(1));
    }
}
//输出
//null

 判断为不为空 isEmpty()

空为true,不空为false

添加另一个同一类型的map下的所有键值对

相同的键的value会被之后的替代

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map1 = new HashMap<>();
        Map<Integer,String> map2 = new HashMap<>();
		map1.put(1,"abc");
		map1.put(2,"bbb");
		map2.put(1,"aaa");
		map2.put(3,"ccc");
		map2.putAll(map1);
		System.out.println(map2);
    }
}
//输出
//{1=abc, 2=bbb, 3=ccc}

 删除这个key和value的键值对

如果删除的键值对不存在,返回false,否则删除键值对并返回true

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map1 = new HashMap<>();
        Map<Integer,String> map2 = new HashMap<>();
		map1.put(1,"abc");
		map1.put(2,"bbb");
		System.out.println(map1);
		map1.remove(1,"abc");
		System.out.println(map1);
    }
}
//输出
//{1=abc, 2=bbb}
//{2=bbb}

putIfAbsent(Key, Value)

如果当前 Map 不存在键 key 或者该 key 关联的值为 null,那么就执行 put(key, value);否则,便不执行 put 操作:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map1 = new HashMap<>();
        Map<Integer,String> map2 = new HashMap<>();
		map1.put(1,"abc");
		map1.put(2,"bbb");
		map1.putIfAbsent(2,"ccc"); //不执行put
		map1.putIfAbsent(3,"ccc");
		System.out.println(map1);
		map1.remove(1,"abc");
		map1.putIfAbsent(1,"aaa");
		System.out.println(map1);
    }
}
//{1=abc, 2=bbb, 3=ccc}
//{1=aaa, 2=bbb, 3=ccc}

getOrDefault(key, defaultValue)

如果Map中不存在该键值,则返回默认Value,存在键值返回该键值的Value.

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Map<Integer,String> map1 = new HashMap<>();
        Map<Integer,String> map2 = new HashMap<>();
		map1.put(1,"abc");
		map1.put(2,"bbb");
		System.out.println(map1.getOrDefault(3,"ccc"));//因为没有键值3,所以返回默认值ccc
		System.out.println(map1.getOrDefault(2,"ccc"));//返回键值为2的value bbb
    }
}
//ccc
//bbb

 

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务