接口:java.util.Map<K, V>
实现:
java.util.HashMap<K, V>:哈希表
java.util.TreeMap<K, V>:平衡树
getOrDefault
map.getOrDefault("key", default)//如果map里有key就返回key对应的value,没有就返回default
在查找场景中,defualt设置为0,如果查询结果为空,则返回0;
public class HashMaptest {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("张三", 23);
map.put("赵四", 24);
map.put("王五", 25);
String age= String.valueOf(map.getOrDefault("赵四", 30));
//String age = map.getOrDefault("赵四", 30);
System.out.println(age);// 24,map中存在"赵四",使用其对应值24
String age2 = String.valueOf(map.getOrDefault("刘能", 30));
System.out.println(age2);// 30,map中不存在"刘能",使用默认值30
System.out.println(map);
}
}
遍历map 中的 key 和 value
public static void main(String[] args) {
Boolean a=isAnagram("abczxcvbnm","cabmnbvcxz");
System.out.println(a);
}
public static boolean isAnagram(String s, String t) {
if(s.length()!=t.length()) return false;
Map<Character,Integer> map=new HashMap<>();
for(int i=0;i<s.length();i++){
map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1);
map.put(t.charAt(i),map.getOrDefault(t.charAt(i),0)-1);
}
for(Integer value:map.values()){ //单独遍历 vulue
if(value!=0) return false;
}
for(Character x:map.keySet()){ //单独遍历key
System.out.println(s);
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) { //key value一起遍历
Character mapKey = entry.getKey();
Integer mapValue = entry.getValue();
System.out.println(mapKey + ":" + mapValue);
}
return true;
}
}
putAll 将另一个Map存入当前map
Map<String,String> map = new HashMap<>();
//添加符合要求的健值存入map
map.put("A","a");
map.put("B","b");
Map<String,String> map1 = new HashMap<>();
map1.put("C","c");
map1.put("D","d");
map1.put("E","e");
//将另一个Map存入当前map
map.putAll(map1);
System.out.println(map);
System.out.println(map1);
boolean containskey = map.containsKey("A");
//根据key是否存在返回一个布尔值
keySet()
返回Map里面所有的Key ,返回类型为Set集合(不重复)
Set<String> key = map.keySet();
[A, C, D, E]
values()
返回Map里面所有的value,返回类型为Collection集合(可以重复);
Collection collection = map.values();
[aa, c, d, e]
原文地址:http://www.cnblogs.com/wdnmdp/p/16829814.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性