1.4.5 Java数据结构章 LinkedList

构造

LinkedList<E> list =new LinkedList<>(); //无参数

LinkedList<E> list =new LinkedList<>(同类或者子类); 

LinkedList<E> list =new LinkedList<>(大小); //初始化大小 

Queue<E> list =new LinkedList<>(); 

尾插

boolean add(E e)

list.add(元素);

指定位置插入

void add(int index, E element);

list.add(下标,元素);

尾插子类或同类

boolean addAll(Collection c);

list.addAll(同类或者子类);

删除指定下标元素

E remove(int index) 

list.remove(元素下标);

删除遇到的指定元素

boolean remove(Object o) 

list.remove(元素);

获取下标 index 位置元素

E get(int index);

list.get(下标位置);

将指定下标元素改成某个值

E set(int index, E element);

list.set(下标,元素);

清空

void clear()

list.clear();

判断是否有某个元素

//判断双向链表是否有某个元素

boolean contains(Object o);

list.contains(元素);

返回某个元素顺序所在下标

int indexOf(Object o);

list.indexOf(元素);

返回某个元素逆序所在下标

int lastIndexOf(Object o);

list.lastindexOf(元素);

截取List

List subList(int fromIndex, int toIndex);

获取元素个数

list.size();

获取迭代器

迭代器是LinkedList类的内部类,可以用这个类实现迭代的效果,这个类继承了ListIterator

list.listIterator();

  1. 在使用迭代器的过程中,it.hasNext()方法不涉及指针的移动,只是判断当前指针是否超出下标,也就是判断是否还有下一元素。

  2. 而it.next()方法从源码来看则是先将指针下移并且取得当前元素。整个过程中只有next()方法涉及指针的下移.

  3. it.next本质是先获取当前元素,在移动指针到下一个元素

ListIterator<Integer> it = list.listIterator();
while(it.next()){
    
}

while(it.hasNext()){
    it.next()
}
//两者都能遍历一遍

迭代

LinkedList list = new LinkedList<>();

foreach遍历

for (int e : list) {
    System.out.print(e + " ");
}

**使用迭代器遍历—正向遍历 **

ListIterator<Integer> it = list.listIterator();
while (it.hasNext()) {
    System.out.print(it.next() + " ");
}

使用反向迭代器—反向遍历

ListIterator<Integer> rit = list.listIterator(list.size());
while (rit.hasPrevious()) {
    System.out.print(rit.previous() + " ");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Ap0stoL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值