JAVA——MapSet用法
Posted 我永远信仰
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA——MapSet用法相关的知识,希望对你有一定的参考价值。
Map和Set都是哈希结构体的一种。
常见的三种哈希结构:
- 数组
- set(集合)
- map(映射)
详解点击这里,关于哈希表,一定要了解这些
map和set的常用方法
map:
set:
初始化
//map Map<String, Integer> mp = new HashMap<>(); //set Set<String> st = new HashSet<>();
添加
map:put();
set:add();
map、set添加是有返回值的。
map返回值与 key 关联的旧值;如果 key 没有任何映射关系,则返回 null。(返回 null 还可能表示该映射之前将 null 与 key 关联。)
set返回一个布尔值,表示添加是否成功。//map mp.put("张三", 14); Integer r = mp.put("张三", 15); System.out.println(r);//输出14 //set st.add("王二"); boolean r = st.add("张三"); boolean r1 = st.add("张三"); System.out.println(r);//true System.out.println(r1);//false
删除
map:remove();
set:remove();
从此映射中移除指定键的映射关系(如果存在)。//map mp.put("张三", 14); Integer r = mp.remove("张三");//r=14 Integer r1 = mp.remove("李四");//r1=null //set st.add("张三"); boolean r = st.remove("张三");//r=true boolean r1 = st.remove("ads");//r1=false
查找
map:
是否存在:
mp.put("张三", 14); boolean r = mp.containsKey("张三");//true boolean r1 = mp.containsValue(99);//false
用key获对应的value
mp.put("张三1", 14); System.out.println(mp.get("张三1"));//14
mp.getOrDefault(key,defalut_value)
查找key是否存在于map中,如果存在,则返回map里key对应的value,如果不存在则返回default_valuemp.put("张三1", 14); int num=mp.getOrDefault("张三1",0); //num=14 int num=mp.getOrDefault("张三11",0); //num=0
set:
st.add("张三"); boolean r = st.contains("张三"); boolean r1 = st.contains("222");//false //containsAll st.add("张三"); st.add("李四"); String[] arr = new String[2]; arr[0]="张三"; arr[1]="李四"; boolean r = st.containsAll(Arrays.asList(arr)); System.out.println(r);//true
修改
map:
通过put添加的方式覆盖原有的值,
int num=30; mp.put("张三1", num); num+=num; mp.put("张三1", num); System.out.println(mp.get("张三1"));//输出60
set:
不支持修改,直接删除后增加新的元素。遍历:
map:
方法1:keyset遍历
mp.put("张三1", 14); mp.put("张三2", 28); mp.put("张三3", 6); for (String key : mp.keySet()) { int value = mp.get(key); System.out.println("key="+key+",value="+value); }
方法2:Entry遍历
mp.put("张三1", 14); mp.put("张三2", 28); mp.put("张三3", 6); for (Map.Entry<String,Integer> entry: mp.entrySet()){ String key = entry.getKey(); int value = entry.getValue(); System.out.println("key="+key+",value="+value); } /* key=张三3,value=6 key=张三1,value=14 key=张三2,value=28 */
以上是关于JAVA——MapSet用法的主要内容,如果未能解决你的问题,请参考以下文章