给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
示例:
输入:nums = [0,1,0,1,0,1,100]
输出:100
class Solution {
public int singleNumber(int[] nums) {
Map<Integer,Integer> freq=new HashMap<Integer,Integer>();
for(int num : nums){
freq.put(num,freq.getOrDefault(num,0)+1);
}
int ret=0;
//遍历HashMap 通过Map.entrySet遍历key和value
for(Map.Entry<Integer,Integer> entry : freq.entrySet()){
int myKey=entry.getKey();
int myValue=entry.getValue();
if(myValue==1){
ret=myKey;
break;
}
}
return ret;
}
}
补充:Map集合的循环遍历
Map集合循环遍历方式一
通过Map.keySet()遍历key和value
//keySet获取map集合key的集合 然后在遍历key即可
for(String key:map.keySet()){
String value = map.get(key).toString();
System.out.println("key:"+key+" vlaue:"+value);
}
Map集合循环遍历二 通过迭代器的方式
//通过Map.entrySet使用iterator遍历key和value
Iterator<Entry<String, Object>> it = map.entrySet().iterator();
while(it.hasNext()){
Entry<String, Object> entry = it.next();
System.out.println("key:"+entry.getKey()+" key:"+entry.getValue());
}
Map集合循环遍历方式三 推荐,尤其是容量大时
//通过Map.entrySet遍历key和value");
for (Map.Entry<String, Object> m : map.entrySet()) {
System.out.println("key:" + m.getKey() + " value:" + m.getValue());
}
第四种:通过Map.values()遍历所有的value,但不能遍历key
for(Object m:map.values()){
System.out.println(m);
}