程序输出说明HashSet

时间:2014-11-06 13:27:06

标签: java hashset short

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.任何想法?

1 个答案:

答案 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。