Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung von LinkedList in Java-Sammlungen

Detaillierte Erläuterung von LinkedList in Java-Sammlungen

黄舟
黄舟Original
2017-03-13 17:30:431707Durchsuche

LinkedList ist eine doppelt verknüpfte Liste, die AbstractSequentialList. Sie kann auch als Stapel, Warteschlange oder als doppelendige Warteschlange betrieben werden.


LinkedList implementiert die List

Schnittstelle und kann darauf Warteschlangenoperationen ausführen.

LinkedList implementiert die Seque-Schnittstelle und kann LinkedList als doppelendige Warteschlange verwenden.

LinkedList implementiert Cloneable, deckt die Klonfunktion

ab und kann geklont werden. LinkedList implementiert Serializable und kann serialisiert werden.

LinkedList ist nicht threadsicher.

LinkedList-Beispielprogramm:

Ausgabeergebnis:
public class Hello {

    public static void main(String[] args) {
        testLinkedListAPIs() ;
        useLinkedListAsLIFO();
        useLinkedListAsFIFO();
    }

    private static void testLinkedListAPIs()
    {
        String val = null;
        LinkedList llist = new LinkedList();
        //添加是哪个元素
        llist.add("1");
        llist.add("2");
        llist.add("3");
        llist.add(1, "4");//在第一个元素后面插入4
        System.out.println("\nTest \"addFirst(), removeFirst(), getFirst()\"");
        llist.addFirst("10");//将10插入并作为第一个元素
        System.out.println("llist:"+llist);
        System.out.println("llist.removeFirst():"+llist.removeFirst());//删除掉第一个元素
        System.out.println("llist:"+llist);
        System.out.println("llist.getFirst():"+llist.getFirst());//获得第一个元素
        System.out.println("\nTest \"offerFirst(), pollFirst(), peekFirst()\"");
        llist.offerFirst("10");//添加第一个元素
        System.out.println("llist:"+llist);
        System.out.println("llist.pollFirst():"+llist.pollFirst());//去掉第一个元素
        System.out.println("llist:"+llist);
        System.out.println("llist.peekFirst():"+llist.peekFirst());//读取第一个元素
        System.out.println("\nTest \"addLast(), removeLast(), getLast()\"");
        llist.addLast("20");//链尾添加元素20
        System.out.println("llist:"+llist);
        System.out.println("llist.removeLast():"+llist.removeLast());//删掉链尾元素20
        System.out.println("llist:"+llist);
        System.out.println("llist.getLast():"+llist.getLast());//读取链尾元素
        System.out.println("\nTest \"offerLast(), pollLast(), peekLast()\"");
        llist.offerLast("20");//添加链尾元素20
        System.out.println("llist:"+llist);
        System.out.println("llist.pollLast():"+llist.pollLast());//删掉链尾元素20
        System.out.println("llist:"+llist);
        System.out.println("llist.peekLast():"+llist.peekLast());//读取链尾元素
        llist.set(2, "300");//替换第三个元素
        System.out.println("\nget(3):"+llist.get(2));//获得第三个元素

        String[] arr = (String[])llist.toArray(new String[0]);//得到数组
        for (String str:arr)
        {
            System.out.println("str:"+str);
            System.out.println("size:"+llist.size());
            llist.clear();
            System.out.println("isEmpty():"+llist.isEmpty()+"\n");
        }
    }
    private static void useLinkedListAsLIFO()
    {
        System.out.println("\nuseLinkedListAsLIFO");
        LinkedList stack = new LinkedList();
        //类似于栈输入
        stack.push("1");
        stack.push("2");
        stack.push("3");
        stack.push("4");
        System.out.println("stack:"+stack);
        System.out.println("stack.pop():"+stack.pop());//出栈
        System.out.println("stack.peek():"+stack.peek());//只输出栈顶元素并不出栈
        System.out.println("stack:"+stack);
    }

    private static void useLinkedListAsFIFO()
    {
        System.out.println("\nuseLinkedListAsFIFO");
        LinkedList queue = new LinkedList();
        //类似于队列,入队
        queue.add("10");
        queue.add("20");
        queue.add("30");
        queue.add("40");
        System.out.println("queue:"+queue);
        System.out.println("queue.remove():"+queue.remove());//队列出队
        System.out.println("queue.element():"+queue.element());//读取队头,并不删除元素
        System.out.println("queue:"+queue);
    }
}

Test "offerLast(), pollLast(), peekLast()"
llist:[1, 4, 2, 3, 20]
llist.pollLast():20
llist:[1, 4, 2, 3]
llist.peekLast():3
get(3):300
str:1
size:4
isEmpty():true
str:4
size:0
isEmpty():true
str:300
size:0
isEmpty():true
str:3
size:0
isEmpty():true
useLinkedListAsLIFO
stack:[4, 3, 2, 1]
stack.pop():4
stack.peek():3
stack:[3, 2, 1]
useLinkedListAsFIFO
queue:[10, 20, 30, 40]
queue.remove():10
queue.element():20
queue:[20, 30, 40]


LinkedList-Quellcode:

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von LinkedList in Java-Sammlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn