代码很长,路很长,有些事情做过才能体会
package baozhuang;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ListIterator;
/**
* @author : Gavin
* @date: 2021/7/15 - 07 - 15 - 19:40
* @Description: baozhuang
* @version: 1.0
*/
public class Today {
public static void main(String[] args) {
LinkedList <String>list = new LinkedList();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add("dddd");
list.add("eeee");
list.add(2,"qwer");
list.addFirst("1111");
list.addLast("2222");
list.push("hahaha");//压栈
String peek = list.peek();
System.out.println(peek);//返回第一个元素
/*public E peek() {
final LinkedList.Node<E> f = first;
return (f == null) ? null : f.item;
}
*/
System.out.println(list.element());//返回第一个元素,如果没有则报错Exception in thread "main" java.util.NoSuchElementException
/* public E element() {
return getFirst();
}*/
System.out.println(list.indexOf("aaaa"));//查找元素
System.out.println(list.offer("tttt"));//在末尾插入元素--返回是否插入成功
System.out.println(list.pollFirst());//pollFirst()与poll()方法内容一样
list.poll();
/* public E pollFirst() {
final LinkedList.Node<E> f = first;
return (f == null) ? null : unlinkFirst(f);
}*/
/* public E poll() {
final LinkedList.Node<E> f = first;
return (f == null) ? null : unlinkFirst(f);
}*/
// -----unlinkFirst(f)----
// private E unlinkFirst(Node<E> f) {
// // assert f == first && f != null;
// final E element = f.item;
// final LinkedList.Node<E> next = f.next;
// f.item = null;
// f.next = null; // help GC//删除第一个元素
// first = next;
// if (next == null)
// last = null;
// else
// next.prev = null;
// size--;
// modCount++;
// return element;//返回第一个元素
// }
//
//ListIterator<String> stringListIterator = list.listIterator(3);//从指定位置开始返回一个
System.out.println("------------------------------------------");
for (int i =0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("------------------------------------------");
for(String s:list){
System.out.println(s);
}
System.out.println("------------------------------------------");
Iterator<String> iterator = list.iterator();
while(iterator.hasNext())
System.out.println(iterator.next());
System.out.println("------------------------------------------");
// for(初始化体;条件;)
// 这种方式节省内存
for(Iterator<String> it = list.iterator();it.hasNext();)
System.out.println(it.next());
}
}
想了想还是取一部分代码给大家看看吧—
关于迭代器的,
Iterator<String> iterator = list.iterator();
System.out.println("做一个标记"+iterator.next());
while(iterator.hasNext())
System.out.println(iterator.next());
System.out.println("------------------------------------------");
// for(初始化体;条件;)
// 这种方式节省内存
for(Iterator<String> it = list.iterator();it.hasNext();)
System.out.println(it.next());
上段代码中第二种迭代方式的巧妙之处在于运行完 it对象就被回收了,整个他的生命周期就结束了,节省空间;
强行解释—
for循环是编程语言中一种循环语句,而 循环语句 由 循环体 及循环的判定 条件 两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体)
如果it.next()能输出,则会继续循环;
next()注解----
/**
* Returns the next element in the iteration.
*
* @return the next element in the iteration
* @throws NoSuchElementException if the iteration has no more elements
*/