HashSet<Integer> set = new HashSet<Integer>();
set.add(1);
Run Code Online (Sandbox Code Playgroud)
我怎么能1出来?我可以做到for(integer i : set).你有另一个想法来解决这个问题吗?
我指定的问题是"给定一个整数数组,每个元素出现两次,除了一个.找到那个单独的." 如果集合不包含它,我想在集合中使用add元素,并在循环期间删除现有元素.最后一个要素就是答案.我不知道如何归还它.
public static int singleNumber(int[] A) {
HashSet<Integer> set = new HashSet<Integer>();
for (int a : A) {
if (!set.contains(a)) {
set.add(a);
} else {
set.remove(a);
}
}
/**
* for(Integer i : set) { return i; }
*return A[0];//need one useless return
/**
* while(set.iterator().hasNext()) { return set.iterator().next(); }
* return A[0];//need one useless return
*/
return set.toArray(new Integer[1])[0];
}
Run Code Online (Sandbox Code Playgroud)
只需尝试使用HashSet#toArray()方法
HashSet<Integer> set = new HashSet<Integer>();
set.add(1);
if (set.size() == 1) { // make sure that there is only one element in set
Integer value = set.toArray(new Integer[1])[0];
System.out.println(value);//output 1
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6282 次 |
| 最近记录: |