java HashMap怎么用
java HashMap怎么用
1、创建HashMap变量
创建HashMap变量的格式如下图。
创建HashMap变量需指定键和值的数据类型,图中创建的变量的键是Integer类型,值是String类型。
`mport java.util.HashMap;`
`public class Hash {`
`public static void main(String[] args) {`
`HashMap<Integer ,String> hashmap = new HashMap<>();`
`}`
`}`
2、向HashMap变量添加值
通过HashMap的put方法可以向变量中添加值。
put方法有两个参数,就是要添加的数据的键和值。
如图简单地通过循环向变量中添加值。
``String[] name = {"zahgnsna","lisi","wnagwu"};`
`for(int i = 0 ; i <name.length;i++) {`
`hashmap.put(i+1,name[i]);`
`}`
}`
3、从HashMap变量获取值
通过HashMap的get方法可以向变量中取值。
get方法需要传入一个参数,那个参数是键值,在HashMap中,键值是唯一的。如图是取键值为2时对应的值。
S
tring names = hashmap.get(2); System.out.println("key值为2对应的value值为:"+names);
4、遍历HashMap变量
遍历HashMap变量不能像遍历数组那样直接通过索引值来遍历,
可以通过HashMap的keySet()方法获取变量中存放的所有键值,然后再通过遍历键获取对应的值。具体代码如图。
f`or(Integer id :hashmap.keySet()) {`
`System.out.println("id"+id+",name:"+hashmap.get(id));`
`}`
System.out.println();`
`
5、修改HashMap变量中的值
在HashMap中,想修改其中存放的值,可以通过使用put方法,将原有的值覆盖。如图是通过覆盖原有键为2的值来修改变量中存放的内容。
`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变量中的内容。(具体效果看后面步骤)。
`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、编写程序测试结果
`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