Java-Java:此处的clear()是哪个方法中的呢?
删除List中的某段数据,推荐的写法如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo {
public static void main(String[] args) {
// 初始化一个固定长度,不可变列表
List<Integer> initData=Collections.nCopies(100, 0);
// 转换为可变列表
ArrayList<Integer> list=new ArrayList<Integer>(initData);
// 删除指定范围的元素
list.subList(20,30).clear();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看源码吧.
ArrayList.java
public List<E> subList(int fromIndex, int toIndex) {
subListRangeCheck(fromIndex, toIndex, size);
return new SubList(this, 0, fromIndex, toIndex);
}
ArrayList$SubList
private class SubList extends AbstractList<E> implements RandomAccess {
这里SubList没有重写clear(). 所以调用的是AbstractList 里的clear方法.
但是最终还是会调用到ArrayList的 removeRange()... :)
你说的AbstractList是Collections吗,如果是的话,Collections是接口,调用的还是ArrayList的clear()方法