JDK源码解读————List(接口)

List接口继承了Collection接口,是列表这一类型的基础接口

继承父类的方法

int size();
boolean isEmpty();
boolean contains(Object o);
Iterator<E> iterator();
Object[] toArray();
<T> T[] toArray(T[] a);
boolean add(E e);
boolean remove(Object o);
boolean containsAll(Collection<?> c);
boolean addAll(Collection<? extends E> c);
boolean removeAll(Collection<?> c);
boolean retainAll(Collection<?> c);
void clear();


default Spliterator<E> spliterator() {
    return Spliterators.spliterator(this, Spliterator.ORDERED);
}

特有的方法

List翻译过来的意思就是个列表,对于列表会有一些特殊的操作。

1. 新增,修改,删除

//在指定位置上添加集合c的所有元素
boolean addAll(int index, Collection<? extends E> c);

//替换所有元素
default void replaceAll(UnaryOperator<E> operator) {
    Objects.requireNonNull(operator);
    final ListIterator<E> li = this.listIterator();
    while (li.hasNext()) {
        li.set(operator.apply(li.next()));
    }
}
//在指定位置上添加元素
void add(int index, E element);
//替换指定位置上的元素
E set(int index, E element);
//删除指定位置上的元素
E remove(int index);


UnaryOperator跟之前提到的Consumer类似,也是个函数式编程的接口,不一样的地方在于UnaryOperator有返回值。

2.查找

//获取指定位置上的元素 
E get(int index);
//返回元素的索引 
int indexOf(Object o);
//返回元素最后出现位置的索引 
int lastIndexOf(Object o);

3.排序

default void sort(Comparator<? super E> c) {
    //转换为数组
    Object[] a = this.toArray();
    //安装c里面的定义的规则进行排序
    Arrays.sort(a, (Comparator) c);
    //通过ListIterator迭代依次替换每个元素
    ListIterator<E> i = this.listIterator();
    for (Object e : a) {
        i.next();
        i.set((E) e);
    }
}

4. 返回子序列

List<E> subList(int fromIndex, int toIndex);

5.List迭代器 

ListIterator<E> listIterator();

//从指定位置开始的iterator
ListIterator<E> listIterator(int index);
很明显ListIterator是List特有的迭代器,接下来就分析ListIterator吧。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值