Java-Java:此处的clear()是哪个方法中的呢?

发布于 2017-01-31 19:43:18 字数 494 浏览 1207 评论 2

删除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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-08-11 09:35:37

看源码吧.

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()... :)

瑾兮 2017-06-11 21:16:48

你说的AbstractList是Collections吗,如果是的话,Collections是接口,调用的还是ArrayList的clear()方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文