Set<Short> set = new HashSet<Short>();
short i = 0;
for (i = 0; i < 100; i++) {
set.add(i);
set.remove(i-1);
}
System.out.println(set.size());
当我们运行以上程序时,输出为100。 我理解它是因为我们在set中插入短值并试图删除整数值。所以它不是从集合中移除。
但是如果我们修改删除语句如下
set.remove(i);
输出为0.任何想法?
答案 0 :(得分:0)
当您从集合中删除它时,i-1
被视为对象,需要进行类型转换才能从集合中删除正确的值。 set.remove((short)(i - 1))
Set<Short> set = new HashSet<Short>();
short i = 0;
for (i = 0; i < 100; i++) {
set.add(i);
set.remove((short)(i - 1));
}
System.out.println(set.size());
尝试使用此代码将输出设为1。