赞
踩
Iterable:实际上就是for-each循环
Collection:线性表接口
set没有提供修改数据的方法,是因为大部分用途都是去重处理
Map.Entry<K, V> 是Map内部实现的用来存放<key, value>键值对映射关系的内部类,该内部类中主要提供了<key, value>的获取,value的设置以及Key的比较方式。
// 打印所有的键值对
// entrySet(): 将Map中的键值对放在Set中返回了
for(Map.Entry<String, String> entry : m.entrySet()){
System.out.println(entry.getKey() + "--->" + entry.getValue());
}
get(key): 返回key所对应的value
如果key存在,返回key所对应的value
如果key不存在,返回null
身兼两职:既可以修改数据也可以新增数据
返回的是key对应的value值
// 打印所有的key
// keySet是将map中的key防止在Set中返回的
for(String s : map.keySet()){
System.out.print(s + " ");
}
// 打印所有的value
// values()是将map中的value放在collect的一个集合中返回的
for(String s : m.values()){
System.out.print(s + " ");
}
类型转换异常:
但是如果换成HashMap:两者底层数据结构不同
Hashmap的key和value值可以为null
换成子类:TreeMap,key值不能为null,value可以为null
public int singleNumber(int[] nums) { Map<Integer,Integer> map=new HashMap<>(); //1.先扫描原数组 for (int i:nums ) { map.put(i,map.getOrDefault(i,0)+1); } //2.遍历map集合找到value=1的数字 int num=0; for (Map.Entry<Integer,Integer> entry:map.entrySet() ) { if(entry.getValue().equals(1)){ num=entry.getKey(); } } return num; } }
public int[] singleNumber(int[] nums) {
Map<Integer,Integer> map=new HashMap<>();
for (int i: nums
) {
map.put(i,map.getOrDefault(i,0)+1);
}
int[] num=new int[2];
int i=0;
for (Map.Entry<Integer,Integer> entry:map.entrySet()
) {
if(entry.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。