不废话,先上代码:

ArrayList<Integer> col = new ArrayList<Integer>();
System.out.println("Initial size: " + col.size());
for(int i = 0; i < 20; i++)
col.add(i + 10);

显然,上面这段代码再简单不过了,建立一个Interger类型参数的ArrayList.

于是考虑到要从ArrayList删除两个元素,比如10, 25。初步设想的代码如下:

col.remove(10);
col.remove(25);

基于这种设想的原因是,既然ArrayList<Integer>里的类型是Integer,我传入一个int的应该可以自动实现autoboxing.那么,如果和设想的一样,col中的10和25两个元素都被删除了。

实际运行的结果不然:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 25, Size: 20

at java.util.ArrayList.rangeCheck(ArrayList.java:604)

at java.util.ArrayList.remove(ArrayList.java:445)

at CollectionBasics.main(CollectionBasics.java:54)
从错误中间可以看到,提示的是访问数组索引越界了。怎么会这样呢?很显然,传入的10,25被当成索引而不是要移除的元素。
察看java doc里面才发现,里面有两个remove方法,分别定义如下:

public E remove(int index);  

public boolean remove(Object o);  
 
当我们传入int类型的时候,会自动被当成上面那个方法来调用。而下面那个移除某个特定元素的方法是需要传入一个Object对象。所以,为了移除制定的元素而不至于引起混淆的话,可以将传入的int先封装一下:

这样结果就对了。

在北京呆了半年,也有了自己的经验。
第一:刚开始找工作的时候,不能把自己放的太低,要有自己的最低底线,不能说工资随便给,要有自己的目标。因为起点越低以后越难爬。 有些公司的hr就不喜欢随随便便看不清自己的人。所以,第一份工作要有自己的最低额度,转正之后要比实习工资翻个1.5倍。
第二:感觉需要调涨工资的时候, 就提出来,不要犹豫,因为可能老板早就有这个念头,但是你没提,老板干嘛要给你涨。提出来是必须的,不管失败与成功,如果失败了,老板也会重新看待你这个人,觉得你这个人不是乐于现在的工作状况。
第三、要涨工资的时候,老板一般会问,你想要多少。所以事前要有一个期望工资和最低工资,如果老板听了你的期望工资,一口答应,那就好事;但是,如果老板讲价还价,不能低于你的最低工资。因为你没有期望工资,只跟老板说了你的最低工资,老板一听就同意了,你肯定会后悔当初怎么没多要。

List<Integer>.remove()的一个小细节的更多相关文章

  1. C++在使用Qt中SLOT宏须要注意的一个小细节

    大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类假设覆写,在基类指针或者引用来指向子类的时候会实现动态绑定. 但假设指针去调用非虚函数,这个时候会调用C++的静态绑定,去推断当前的指针是 ...

  2. C++在使用Qt中SLOT宏需要注意的一个小细节

    大家都知道C++虚函数的机制,对于基类定义为虚函数的地方,子类如果覆写,在基类指针或者引用来指向子类的时候会实现动态绑定. 但如果指针去调用非虚函数,这个时候会调用C++的静态绑定,去判断当前的指针是 ...

  3. [20171120]bash使用here documents的一个小细节.txt

    [20171120]bash使用here documents的一个小细节.txt --//昨天看bash文档,,发现一些小细节,做一个记录,就是EOF加引号的问题. command <<' ...

  4. 文本域textarea的一个小细节

    文本域代码在编写时,最好写在一行上,就像: 如果没写在一行上,如: 那么就会在后续生成的页面上输入的时候就会产生一段空白无法删除: 这是写文本框的时候的一个小细节

  5. 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)

    在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象  ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚 ...

  6. 关于base64的一个小细节

    Base64出现\r\n的问题 前段时间遇到这么一个小问题: 后台接口返回一个图片的base64串,同事拿着这个字符串,找了一个在线图片和Base64字符串互转的工具网站,想将字符串转成图片,死活转不 ...

  7. 曲演杂坛--使用TRY CATCH应该注意的一个小细节

    群里一个朋友遇到一个TRY CATCH的小问题,测试后发现是自己从来没有考虑的情况,写篇blog加深下印象 --============================================ ...

  8. 使用Spring和SpringMVC管理bean时要注意的一个小细节

    最近一直在做毕业设计...用到了Shiro和SpringMVC..用过shiro的朋友都知道shiro需要自己去写Realm,然后把Realm注入到SecurityManager中.而Security ...

  9. std::accumulate使用的一个小细节

    今天使用std::accumulate模板函数的时候出现了一个错误,特此记录一下. #include <iostream> #include <numeric> int mai ...

随机推荐

  1. Memory leak patterns in JavaScript

    Handling circular references in JavaScript applications Plugging memory leaks in JavaScript is easy ...

  2. Java compiler level does not match the version of the installed Java project fac

    Java compiler level does not match the version of the installed Java project fac 问题一: 问:项目图标报错,Probl ...

  3. 基于FPGA的PCIe接口实现(具体讲解了数据流向)

    时间:2014-12-09 来源:西安电子科技大学电子工程学院 作者:姜 宁,陈建春,王 沛,石 婷 摘要 PCI Express是一种高性能互连协议,被广泛应用于网络适配.图形加速器.网络存储.大数 ...

  4. 安装vim 出现 terminal libary 错误,解决方法

    通过源码安装vim时,提示缺少terminal libary 而在安装ncurses以后,此问题照样出现. 经过查找资料发现.运行例如以下命令就能够正常安装vim <pre name=" ...

  5. CCOrbitCamera

    Cocos2d-x提供了一中根据球面坐标轨迹旋转的方式CCOrbitCamera CC_DEPRECATED_ATTRIBUTE static CCOrbitCamera* actionWithDur ...

  6. spring-boot 集合mybatis 的分页查询

    spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...

  7. python文件目录操作大全

    python只获取当前目录下的文件夹及文件名 list = os.listdir(rootdir)#列出目录下的所有文件和目录 for line in list: filepath = os.path ...

  8. hdu6121 Build a tree 模拟

    /** 题目:hdu6121 Build a tree 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6121 题意:n个点标号为0~n-1:节点i的父节点 ...

  9. _BV()

    #define _BV(bit) (1 << (bit)) _BV()是把1左移N位的函数._BV(7)相当于(1<<7) 常用于位的置位或清零 示例解析: PC7=7; PO ...

  10. 解决异常:Package should contain a content type part [M1.13]

    http://blog.csdn.net/llwan/article/details/8890190 ————————————————————————————————————————————————— ...