面试题:1.给定一个整数数组,查询出出现两次的值,并求和
例如输入:[1,1,2,2,3,5,5,5]
输出:3
public static void main(String[] args) {
int[] nums = {1,2,2,5,1,3,5,5};
Map map=new HashMap();
for(int i = 0;i<nums.length;i++){//遍历
if(map.get(nums[i]) != null){//如果map中有就加1,没有则放入
int s = (int)map.get(nums[i]);
map.put(nums[i],s + 1);//{2,2},{1,2},{5,2},{5,3}
}else{
map.put(nums[i],1);//{1,1},{2,1},{5,1},{3,1}
}
}
Iterator ite = map.entrySet().iterator();//迭代器
int sum = 0;
while(ite.hasNext()){
Entry entry = (Entry)ite.next();
if((int)entry.getValue() == 2){//如果value为2,获取key
sum += (int)entry.getKey();
}
}
System.out.println(sum);
}