list集合常踩坑
例如list集合的remove方法
Java 的List接口有两个remove方法,行为完全不同,这是新手最容易混淆的点:
表格
| 方法签名 | 作用 | 参数类型 | 适用场景 |
|---|---|---|---|
E remove(int index) | 按索引删除元素 | 基本类型 int | 知道要删除元素的位置时 |
boolean remove(Object o) | 按元素值删除元素 | 引用类型 Object | 知道要删除的元素值,不知道位置时 |
所以如果按照元素值来删除元素,那么就把元素转换为对应的包装类,例如int转Integer
list集合中删除第一个元素时
要用removeFirst方法,而不是getFirst,getFirst方法不能删除其值,只能返回第一个元素
Integer.valueOf('3')存储的是字符 '3' 对应的 ASCII 数值,而不是数字 3 的数值,这是新手很容易混淆的点。
- Java 会先将字符
'3'自动转换为其对应的 ASCII 码值('3'的 ASCII 码是 51); - 再把这个数值 51 封装成 Integer 对象。
- 若要将字符 / 字符串形式的数字转为对应数值,应使用
Integer.valueOf("3")(传字符串),或先把 char 转 String 再转换;
