java HashMap怎么用

1、创建HashMap变量

  1. 创建HashMap变量的格式如下图。

创建HashMap变量需指定键和值的数据类型,图中创建的变量的键是Integer类型,值是String类型。

1
2
3
4
5
6
7
8
`mport java.util.HashMap;`

`public class Hash {`
`public static void main(String[] args) {`
`HashMap<Integer ,String> hashmap = new HashMap<>();`
`}`

`}`

2、向HashMap变量添加值

  1. 通过HashMap的put方法可以向变量中添加值。

put方法有两个参数,就是要添加的数据的键和值。

如图简单地通过循环向变量中添加值。

1
2
3
4
5
``String[] name = {"zahgnsna","lisi","wnagwu"};`
`for(int i = 0 ; i <name.length;i++) {`
`hashmap.put(i+1,name[i]);`
`}`
}`

3、从HashMap变量获取值

  1. 通过HashMap的get方法可以向变量中取值。

get方法需要传入一个参数,那个参数是键值,在HashMap中,键值是唯一的。如图是取键值为2时对应的值。

1
S`tring names = hashmap.get(2);`System.out.println("key值为2对应的value值为:"+names);

4、遍历HashMap变量

遍历HashMap变量不能像遍历数组那样直接通过索引值来遍历,

可以通过HashMap的keySet()方法获取变量中存放的所有键值,然后再通过遍历键获取对应的值。具体代码如图。

1
2
3
4
f`or(Integer id :hashmap.keySet()) {`
`System.out.println("id"+id+",name:"+hashmap.get(id));`
`}`
System.out.println();`

`

5、修改HashMap变量中的值

在HashMap中,想修改其中存放的值,可以通过使用put方法,将原有的值覆盖。如图是通过覆盖原有键为2的值来修改变量中存放的内容。

1
2
3
4
`S`ystem.out.println("修改前:id = 2,name:"+hashmap.get(2));`
`hashmap.put(2,"xxx");`
`System.out.println("修改后:id = 2,name:"+hashmap.get(2));`
System.out.println();`

6、删除HashMap变量中的值

由于键值是对应的,所以只有删除HashMap中的键,就会连同删除键对应的值。通过使用HashMap的remove方法,可以删除HashMap变量中的内容。

这里讲一下remove方法的两个重载函数,remove(Object key) 和 remove(Object key, Object value)。这两个函数的区别在于,remove(Object key)直接删除对应的键,而remove(Object key, Object value)需要键和值都对应时才会删除HashMap变量中的内容。(具体效果看后面步骤)。

1
2
3
4
5
6
7
8
9
10
`S`ystem.out.println("删除前:");`
`for(Integer id :hashmap.keySet()) {`
`System.out.println("id:"+id+",name:"+hashmap.get(id));`
`}`
`System.out.println("删除后:");`
`hashmap.remove(2);`
`for(Integer id :hashmap.keySet()) {`
`System.out.println("id:"+id+"name:"+hashmap.get(id));`
`}`
System.out.println();`

7、编写程序测试结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
`import java.util.HashMap;`

`public class Hash {`
`public static void main(String[] args) {`
`HashMap<Integer ,String> hashmap = new HashMap<>();`
`String[] name = {"zahgnsna","lisi","wnagwu"};`
`for(int i = 0 ; i <name.length;i++) {`
`hashmap.put(i+1,name[i]);`
`}`
`String names = hashmap.get(2);`
`System.out.println("key值为2对应的value值为:"+names);`
`for(Integer id :hashmap.keySet()) {`
`System.out.println("id"+id+",name:"+hashmap.get(id));`
`}`
`System.out.println();`
`System.out.println("修改前:id = 2,name:"+hashmap.get(2));`
`hashmap.put(2,"xxx");`
`System.out.println("修改后:id = 2,name:"+hashmap.get(2));`
`System.out.println();`
`System.out.println("删除前:");`
`for(Integer id :hashmap.keySet()) {`
`System.out.println("id:"+id+",name:"+hashmap.get(id));`
`}`
`System.out.println("删除后:");`
`hashmap.remove(2);`
`for(Integer id :hashmap.keySet()) {`
`System.out.println("id:"+id+"name:"+hashmap.get(id));`
`}`
`System.out.println();`
`}`
``

`}`

8、联系方式

qq:2061302791

微信:xie2061302791

电话:15284524485

个人网站:https://xieyingpeng.github.io

Github:https://github.com/xieyingpeng/

博客园:https://www.cnblogs.com/Xieyingpengz

知乎:https://www.zhihu.com/people/nan-qiao-12-73

gitee:https://gitee.com/xie-yingpeng/project-1.git

bilibili:https://space.bilibili.com/617198338?share_medium=android&share_source=copy_link&bbid=XY2BDF522C748A159BE7DD354D6DFFB963728&ts=1612520115798![]