import java.util.HashSet;public class JPTQuestion3 {public static void main(String[] args) {HashSet shortSet = new HashSet();for (short i = 0; i < 100; i++) {shortSet.add(i);shortSet.remove(i - 1);}System.out.println(shortSet.size());}
}

输出:100。

如果把循环变量改为int型的, 那么

import java.util.HashSet;public class JPTQuestion3 {public static void main(String[] args) {HashSet shortSet = new HashSet();for (int i = 0; i < 100; i++) {shortSet.add(i);shortSet.remove(i-1);}System.out.println(shortSet.size());}
}

输出:1

这是什么坑啊。而且,这HashSet竟然不指定泛型就在用了-_-

为什么范围比int小的的就不会被移除,而大于等于int范围的就会被移除?泛型指定与否都与结果无关。

原因:.........................................i-1是int型的,HashSet里面存的是Short类型的,所以,没有一个数字被移除。

官方解释:自动装箱的作用

Java Programming Test Question 3 Answer and Explanation

The size of the shortSet will be 100. Java Autoboxing feature has been introduced in JDK 5, so while adding the short to HashSet<Short> it will automatically convert it to Short object. Now i-1 will be converted to int while evaluation and after that it will autoboxed to Integer object but there are no Integer object in the HashSet, so it will not remove anything from the HashSet and finally its size will be 100.

转载于:https://www.cnblogs.com/fuzhihong0917/p/5703678.html

Java Programming Test Question 3相关推荐

  1. Java Programming Test Question 2

    public class JPTQuestion2 {public static void main(String[] args) {String s3 = "JournalDev" ...

  2. 板凳——————————————————(昏鸦)Introduction to Java Programming

    //Introduction to Java Programming //p30/603 2021年03月21日 星期日 13时46分12秒 import javax.swing.JOptionPan ...

  3. [Java in NetBeans] Lesson 01. Java Programming Basics

    这个课程的参考视频在youtube. 主要学到的知识点有: Create new project, choose Java Application. one .jar file/ package(.j ...

  4. Fast Intro To Java Programming (2)

    Java局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁: 访问修饰符不能用于局部变量: 局部变量只在声明它 ...

  5. 魔鬼细节之Java Programming

    1. 实体类的序列化 如果这个实体类要与实际网络进行交互,要实现Serializable接口 2. 在测试Web项目前,先把其他修改过的Java项目intall下,如pojo类,interface 3 ...

  6. Java性能 - Java Programming Guidelines

    这一部分包含了Java编码和性能方面的问题, 这个guidelines不是专门针对应用服务器的,但这是一些在很多情况下的偶通用的规则,如需了解Java coding最佳实践的完整分析探讨,请参考 Ja ...

  7. 【软件构造】实验笔记(一)Lab1-Fundamental Java Programming and Testing

    一.前言 <软件构造>课程是我校根据MIT.CMU等计算机领域名校的相关课程近年来开展的软件开发相关的课程.课程的实验和课件都很大程度上参考了上述学校. 本笔记对在课程实验练习进行中遇到的 ...

  8. free java movies_Java Programming: Build a Recommendation System

    Ever wonder how Netflix decides what movies to recommend for you? Or how Amazon recommends books? We ...

  9. java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始

    java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...

最新文章

  1. 转载:关于错排的相关知识
  2. 用户流失的事前预警与事后分析
  3. 面向对象设计原则之7-迪米特法则
  4. 离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)
  5. lopatkin俄大神精简Windows 10 Pro 19042.487 20H2 PreRelease x86-x64 ZH-CN BIZ(2020-09-01)
  6. MATLAB 计算点到直线的距离
  7. 2022年全国各省四级行政区划Shp矢量数据
  8. 项目分享| 自制巡线机器人
  9. 初次联系导师短信模板_申博经验分享|如何联系导师?
  10. 观天涯kk大神10年帖子有感
  11. python解决鸡兔同笼_python解决鸡兔同笼问题
  12. 【树莓派】树莓派安装中文输入法
  13. 如何用CMD查看电脑详细配置
  14. linux完美卸载编译的php,完美卸载linuxoracle的方法
  15. qt快速读取excel
  16. RulersGuides.js – 网站中实现 Photoshop 标尺效果
  17. 编译安装php时遇到virtual memory exhausted: Cannot allocat
  18. python是非常依赖于已编译完成的代码吗_初识Python的几点疑惑
  19. python爬虫 模拟登录人人网过程解析
  20. 鸿蒙抖音社区下单,抖音鸿蒙封神录(礼包领取)-抖音鸿蒙封神录官网版下载v1.0.5 - 比克尔下载...

热门文章

  1. GridView跨行合并单元格
  2. Quartus使用技巧(一些常用的方法)
  3. Qt 常量中有换行符 中文
  4. WPF 4 开发Windows 7 跳转列表(JumpList)
  5. JSON——Java中的使用
  6. Excel 2016中的新增函数之CONCAT
  7. java每日小算法(22)
  8. 两道概率题-供大家周末把玩
  9. C#关于参数为null(空值)的方法调用,重载顺序选择彻底研究
  10. Sun副总裁:绿色数据中心需分四步走