Set<Short> s = new HashSet<Short>();
for (Short i = 0; i < 100; i++) {
s.add(i);
s.remove(i - 1);
}
System.out.println(s.size());最后打印是100有remove方法,每次循环都执行,为啥结果是100呢
for (Short i = 0; i < 100; i++) {
s.add(i);
s.remove(i - 1);
}
System.out.println(s.size());最后打印是100有remove方法,每次循环都执行,为啥结果是100呢
解决方案 »
- 帮我分析下为什么这个javamail程序错误密码也能connect上去
- 制作智能表单
- 大家帮忙看下这是什么错
- struts如何实现文件另存为
- action 问题
- GlassFish中如何禁止通过浏览器直接打开WEB应用程序中的目录?
- j2ee同J2SE的兼容性问题
- 路径问题 ClassLoader.getSystemResourceAsStream() Javapath CLASSPATH InputStream
- 采用MQ,驱动jtds-1.1,数据库sqlserver2000,连接数据库读取数据的时候发生错误jdbc escape
- 用jbuilder开发Entitybean的问题
- 关于实体Bean,ManyToMany关联的问题。
- JAVA课后作业
remove方法是真正的从容器中把某项移除了.
至于楼主所说结果还是100,是因为set集合的remove方法是移除某个在集合中已经存在的对象.
目前容器中的元素全部是Short类型.但是经过i-1的运算已经转换成原生数据类型int.
就算自动打包也是Integer.当然从集合中一个都删不了了.
改成s.remove((short)(i - 1));
这就对了