`
农村哥们
  • 浏览: 293360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Set<Short>删除整数的问题

阅读更多
  1. import java.util.*;   
  2.   
  3. public class Test {   
  4.   public static void main(String args[]) {   
  5.     Set<Short> s = new HashSet<Short>();   
  6.     for (Short i = 0; i < 100; i++) {   
  7.       s.add(i);   
  8.       if(i>0){
  9.        s.remove(i - 1);   
  10.       }
  11.     }   
  12.     System.out.println(s.size());   
  13.   }   
  14. }  


运行结果为100

分析:
1 Set的remove调用的是删除一个对象remove(Object)
2 Short 和 Integer 进行比较时,是肯定不等的,虽然他们的数值相等。
因为在equals时,先判断对象类型instanceof,他们类型不同,自然不等。


boolean remove(Object o)
如果 set 中存在指定的元素,则将其移除(可选操作)。更确切地讲,如果此 set 中包含满足 (o==null ? e==null : o.equals(e)) 的元素 e,则移除它。如果此 set 包含指定的元素(或者此 set 由于调用而发生更改),则返回 true(一旦调用返回,则此 set 不再包含指定的元素)。

指定者:
接口 Collection <E> 中的 remove
参数:
o - 从 set 中移除的对象(如果存在)
返回:
如果此 set 包含指定的对象,则返回 true
抛出:
ClassCastException - 如果指定元素的类型与此 set 不兼容(可选)
NullPointerException - 如果指定的元素为 null,并且此 set 不允许 null 元素(可选)
UnsupportedOperationException - 如果此 set 不支持 remove 操作


remove的参数是Object,而lz的程序里写的是int值,所以没有删除掉。
分享到:
评论

相关推荐

    达内企业面试题集

    然后提出了一个问题:在`A`的子类中可以使用哪些选项? **选项分析**: - **A. public int method1(int a, int b)**{ return 0; } - **B. private int method1(int a, int b)**{ return 0; } - **C. private int ...

    java puzzle

    Set&lt;Short&gt; s = new HashSet&lt;Short&gt;(); for (short i = 0; i &lt; 100; i++) { s.add(i); s.remove(i - 1); } System.out.println(s.size()); } } ``` 对于这段代码,问题提出了以下选项: - (a) 1 - (b) 100 -...

    VC++编程100例

    #include &lt;iostream&gt; using namespace std; int main() { int num; cout &lt;&lt; "请输入一个数字:"; cin &gt;&gt; num; cout &lt;&lt; "你输入的数字是:" &lt;&lt; num &lt;&lt; endl; return 0; } ``` 这个例子展示了如何读取用户输入...

    C++ 基础教程.C++

    #include &lt;iostream&gt; int main() { std::cout &lt;&lt; "I am a student.\n"; return 0; } ``` 5. 使用F7快捷键编译并链接程序,生成`.obj`和`.exe`文件。 6. 运行程序,查看输出结果。 1.2 简单的输入与输出 在C++中,...

    JAVA入门测试题目

    )以及位运算符(&,|,^,~,&lt;&lt;,&gt;&gt;,&gt;&gt;&gt;)等。 4. **控制流程** 条件语句如if-else,switch-case用于根据条件执行不同代码块。循环语句如for,while,do-while用于重复执行某段代码。跳转语句如break,continue...

    25C#总结,3分绝对值。

    19. **异构集合与泛型接口**:IList&lt;T&gt;、ICollection&lt;T&gt;、IEnumerable&lt;T&gt;等接口定义了不同类型的集合操作。 20. **属性与索引器**:属性提供对类成员的访问,索引器允许类像数组一样被访问。 21. **静态类与静态...

    简单C#程序

    4. **数组和集合**:数组是相同类型元素的序列,集合(如List&lt;T&gt;)则允许动态添加和删除元素。例如: ```csharp int[] numbers = { 1, 2, 3, 4, 5 }; List&lt;string&gt; names = new List&lt;string&gt; { "Tom", "Jerry", ...

    c# 語法

    List&lt;int&gt; numbers = new List&lt;int&gt;(); numbers.Add(1); numbers.Add(2); ``` 以上只是C#语法的一部分介绍,实际上C#还有更多高级特性和概念,如委托(delegates)、事件(events)、匿名方法、Lambda表达式、LINQ...

    详解C++中const_cast与reinterpret_cast运算符的用法

    unsigned short hashVal = reinterpret_cast&lt;unsigned short&gt;(c); ``` 在这个例子中,我们把char类型指针转换为unsigned short类型。由于char和unsigned short的大小可能因系统而异,因此这种转换可能是未定义行为。...

    JAVA面试题

    Set&lt;String&gt; set = new HashSet&lt;&gt;(); set.add("Java"); set.add("Java"); // 不会被添加,因为equals()判断相等 ``` #### 14. 常见的 RuntimeException - **ArithmeticException**: 发生算术错误时抛出。 - **...

    语言程序设计课后习题答案

    cout &lt;&lt; "The size of a short int is:\t" &lt;&lt; sizeof(short) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a long int is:\t" &lt;&lt; sizeof(long) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a char is:\t\t" &lt;&lt; sizeof(char) &lt;&lt; ...

    java授课计划

    - Java支持八种基本数据类型:四种整数类型(byte、short、int、long),两种浮点类型(float、double),一个字符类型(char)和一个布尔类型(boolean)。 - **知识点6:运算符** - 算术运算符:+、-、*、/、%...

    c++入门语法及使用 - c++学习路线(csdn)————程序.pdf

    =、&lt;、&gt;、&lt;=、&gt;=)和逻辑运算符(!、&&、||)。其中,三目运算符(? :)用于条件判断,可以简洁地实现条件赋值。 3. 逻辑循环语句 C++中的逻辑控制结构主要包括if-else语句和循环语句(while、do-while和for)。if-...

    delphi面试题.pdf

    function TMyList&lt;T&gt;.GetItem(Index: Integer): T; begin Result := FItems[Index]; end; end; ``` 3. **解释 Delphi 中的匿名方法和如何使用它们。** - **匿名方法**(也称为 Lambda 表达式)是在 Delphi ...

    IT java 面试题库

    3. **&lt;jsp:include&gt;和&lt;%@ include %&gt;区别是什么?** - `&lt;jsp:include&gt;`是在运行时包含另一个页面,可以传递参数。 - `&lt;%@ include %&gt;`是在编译时包含另一个页面,不能传递参数。 #### 十一、标记库 1. **简述...

    java 练习题

    - 使用泛型的示例:`List&lt;String&gt; list = new ArrayList&lt;&gt;();` 2. **集合框架**: - Java的集合框架提供了一系列的接口和实现,如List、Set、Map等,用于存储和操作对象集合。 - List接口表示一个有序的集合,...

Global site tag (gtag.js) - Google Analytics