LinkedList ist eine doppelt verknüpfte Liste, die AbstractSequentialList. Sie kann auch als Stapel, Warteschlange oder als doppelendige Warteschlange betrieben werden.
Schnittstelle und kann darauf Warteschlangenoperationen ausführen.
LinkedList implementiert die Seque-Schnittstelle und kann LinkedList als doppelendige Warteschlange verwenden. LinkedList implementiert Cloneable, deckt die Klonfunktionab 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!