代码很长,路很长,有些事情做过才能体会
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
     */