浅谈list的remove方法
来源:互联网 发布:国泰安数据库好不好用 编辑:程序博客网 时间:2024/06/05 19:23
List list=new ArrayList<>();
list.add(11);
list.add(12);
list.add(13);
list.add(14);
list.add(15);
list.add(16);
/*for (Integer i=0; i<list.size(); i++) { if (list.get(i) % 2 == 0) { list.remove(i); //执行删除指定位置的元素的功能 执行结果 [11,12,13,14,15,16] } }*/ for (int i=0; i<list.size(); i++) { if (list.get(i) % 2 == 0) { list.remove(i); //执行删除指定元素的功能 执行结果 [11,13,15] } } for(Integer i : list){ System.out.println(i); }}
上述执行的代码中remove调用的不是同一个方法分别是list重写的两个remove方法,分别为
public E remove(int index); //执行删除指定位置的元素的功能
public boolean remove(Object o) //执行删除指定元素的功能
// 删除ArrayList指定位置的元素
public E remove(int index) {
RangeCheck(index);//检查index是否超出list大小范围,否则抛出异常
modCount++;
E oldValue = (E) elementData[index];//elementData是实现list的数组
int numMoved = size - index - 1;//当执行删除操作是后面的元素全部向前面移动一位
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[–size] = null;
return oldValue;
}
// 删除ArrayList的指定元素
public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
//快速删除第index个元素
private void fastRemove(int index) {
modCount++;
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[–size] = null;
}
- 浅谈list的remove方法
- list的remove方法
- List的remove方法误区
- 关于List的remove()方法
- list.remove()时出问题,集合的remove方法注意事项
- Collection和List接口的remove方法
- 关于集合List的remove方法
- 关于java List的remove方法
- java 中执行list 的remove 方法
- List对象remove方法的使用
- List 的remove方法注意点
- Android开发中List的remove()方法
- Java中List的remove方法
- 关于list的remove方法感悟
- List的contains()和remove()方法探讨
- list的remove方法中的陷阱
- List对象remove方法的使用
- C++ list remove 方法的错误C2678
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- HMC 的升级方法
- effective C++ 11_在operator= 中处理"自我赋值" 读书笔记
- 3-10·Linux服务管理
- jenkins
- 浅谈list的remove方法
- memcache
- 牛客练习赛8解题报告
- jsp登录页面
- Spring--装配Bean
- 【Python数据分析与展示】(七)数据加载存储和文件格式
- [RK3399][Android7.1] 调试笔记 --- 默认板子无法亮屏
- AnimatorSet 动画集合以及它的监听事件
- 《Java编程技巧1001条》360条:用日期函数获得当前日期