LinkedList底层:双向链表
增加,删除效率高
数据可以重复存储
可以存储多个null值
插入数据的有序性
遍历方法通过迭代器遍历,双向遍历,其中除了提供hashnext()和next()方法外,还提供hashPrevious()和previous()方法,还可以通过迭代器对容器元素增加和设置,通过set() add()方法。
LinkedList<Integer> linkedList=new LinkedList<Integer>();
//增加元素:add(),addFirst(),addLast()
linkedList.add(150);//底层调用尾插
linkedList.addFirst(1);//头插
linkedList.addLast(3333);//尾插
linkedList.offer(11);//增加元素,底层掉用add()方法
linkedList.offerFirst(111);//头插,底层调用addFirst()方法
linkedList.offerLast(33);//尾插,底层调用addLast()方法
/**
*
* 删除元素:
*/
linkedList.remove(12);//删除元素,按照索引删除
linkedList.removeFirst();//头删
linkedList.remove();//头删,底层调用头删
Integer a=12;
linkedList.remove(a);//按照元素删除,删除第一次数出现的改元素
Integer poll = linkedList.poll();//删除第一个元素
System.out.println(poll);
Integer integer2 = linkedList.pollFirst();//删除第一个元素
System.out.println(integer2);
Integer integer3 = linkedList.pollLast();
System.out.println(integer3);//删除尾部元素
/**
* 获取元素
*/
linkedList.get(1);//获取元素,按照索引获取
linkedList.getFirst();//获取第一个元素
linkedList.getLast();//获取最后一个元素
Integer element = linkedList.element();//或取第一个元素,底层调用getFirst()方法
Integer peek = linkedList.peek();//获取头部元素
System.out.println(peek);
Integer integer = linkedList.peekFirst();//获取头部元素
System.out.println(integer);
Integer integer1 = linkedList.peekLast();
System.out.println(integer1);//获取尾部元素
/**
*
* 遍历方法:for循环
* 增强for循环
* 迭代器
*/
for(int i=0;i<linkedList.size()-1;i++){
System.out.println(linkedList.get(i));
}
for (Integer value:linkedList) {
System.out.println(value);
}
Iterator<Integer> iterator = linkedList.iterator();
while (iterator.hasNext()){
Integer next = iterator.next();
System.out.println(next);
}
linkedList.clear();//清空linkedlist
/**
* linkedlist中的迭代器可以双向遍历其中除了还有hashnext(),next()方法外,还有从尾部遍历的方法
* hasPrevious()和previous()方法,也可以通过迭代器对容器中添加元素add(),set()
*/
ListIterator<Integer> integerListIterator = linkedList.listIterator();
integerListIterator.add(12);//尾插
while (integerListIterator.hasNext()){
Integer next = integerListIterator.next();
System.out.println(next);
}
// 可以双向遍历从尾部倒序遍历
System.out.println("==============================");
integerListIterator.set(18);//尾插
while (integerListIterator.hasPrevious()){
Integer previous = integerListIterator.previous();
System.out.println(previous);
}
System.out.println("==============================");
while (integerListIterator.hasNext()){
Integer next2= integerListIterator.next();
System.out.println(next2);
}
}