Sit*_*nsu 5 java collections set
我面对面试问题.
以下代码的输出是什么.
package com.demo;
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Short> set=new HashSet<Short>();
for (short i = 0; i < 10; i++){
set.add(i);
set.remove(i-1);
}
System.out.println(set.size());
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了输出:10
但我很困惑为什么它的输出10.
任何人都可以回答我这里发生的事情.
谢谢
SItansu
表达式i-1具有int类型并被自动装箱到Integer对象,因此程序将Short对象添加到集合中,然后尝试删除Integer对象.该集合没有Integer对象,因此不会删除任何内容.
字面值1是类型int.值i - 1是这样类型的int,而不是类型short为i是.因此,您Short将向该集添加盒装实例,但删除了盒装实例Integer.remove()因此该方法不会移除任何东西,因为a Short不等于a Integer.
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |