java吧 关注:1,292,887贴子:12,823,965
  • 6回复贴,共1

关于hashset小问题

只看楼主收藏回复

代码如下:
import java.util.HashSet;
import java.util.Set;
public class HashSetTest {
public static void main(String[] args) {
Set<Short> set=new HashSet<Short>();
for(Short i=0;i<100;i++){
set.add(i);
set.remove(i-1);
}
System.out.println(set.size());
}
}
打印结果为什么是 100 呢? 难道remove()没有作用?


1楼2013-04-20 13:09回复
    因为i-1是一个Integer,而不是Short了,所以set里是找不到i-1的
    这样写就可以了
    for (Short i = 0; i < 100; i++) {
    set.add(i);
    Short j = i;
    set.remove(--j);
    }


    3楼2013-04-20 13:39
    收起回复
      2025-12-29 07:02:28
      广告
      不感兴趣
      开通SVIP免广告
      对的,你的没有移除里面的值。


      4楼2013-04-20 13:52
      回复
        remove的是element
        i-1不是Short


        5楼2013-04-20 13:53
        收起回复
          我太粗心大意了 只想着是不是set的原因 竟然把short给忘了 谢谢大家


          6楼2013-04-20 14:49
          回复