ืืื ื ื ืชืื ืื ืฉืื ืื ื ืืฆืจืื ืืืืจืืช ืฉืื ืืช. ืืืื ืืชื ืืืืข ืขื
ArrayList (ืื ืขืืืื ืื, ืื ื ืืืืืฆืื ืื ืืงืจืื ืขื ืื ืงืืื). ืืืืืจ ืื, ืื ื ืืืืืื ืืืืื ืขื
LinkedList ืืืืืื ืืื ืืืืกืฃ ืืื ืืื. ืื ืชืกืชืื ืขื ืืงืืจ ืงืื ืืืืชื ืฉื LinkedList Java 8 (ืื ืืจืกื ืืืืืจืช ืืืชืจ ืฉื ืืฉืคื) (ืืืชืจ ืืืจืงื ืื ื-IDE ืฉืื, ืืืงืจื ืฉื IDEA: crtl+B ืขื ืฉื ืืืืืงื) ืชืจืื ืืช ืืืฆืืจื ืืืื:
public class LinkedList < E >
extends AbstractSequentialList < E >
implements List < E > , Deque < E > , Cloneable , java. io. Serializable
ืืจืืข ืืืืืข ืืืฉืื ืืืืชืจ ืืืงืื ืืื ืืขืืืื ืฉ-
LinkedList ืืืืฉืืช ืืืฉืงื
List ื-
Deque . ืืืฉืง ื- List ืฉืืืจ ืขื ืจืฆืฃ ืืืกืคืช ืืคืจืืืื ืืืืคืฉืจ ืืืฉื ืืคืจืื ืืคื ืืื ืืงืก.
ืืชืืจ ื"ืจืืื" ืชืืื ืืืืกืคืช ืืืื ืืื ืืกืืฃ ืืืืืืฅ ืฉืืื ืืืืชืืื. Deque ืืื ืชืืจ ืื-ืืืืื ื, ืืืื ืชืืื ืืืืกืคื ืืืกืจื ืฉื ืืืื ืืื ืืฉื ื ืืฆืืืื. ืืชื ืืืื ืืืฉืื ืขื ืื ืืขื ืฉืืืื ืฉื ืืืกื ืืช ืืชืืจ.
ืื, LinkedList ืืื ืืืฉืื ืฉื ืฉื ื ืืื, ืืืื ืืืคืฉืจ ืื ื ืืืฆืืจ ืชืืจ ืื-ืืืืื ื ืืืืจืื ืืื ืืืืืืงื ืืืื null.
LinkedList ืืื ืืืกืฃ ืฉื ืืืื ืืื. ืื ืื ื ืืืืืื ืืจืืืช ืืช ืื ืืืงืืจ ืืงืื ืฉื ืืืืืงื, ืืคืขื ืฉืืื ืื ืืฉืืืช:
transient int size = 0 ;
transient Node < E > first;
transient Node < E > last;
ืื ืืืื ื, ืืืจื ืืื ืงืจืื ื ืื
Node , ืืืื ืืืืืืงื ืืืคื ืืืช ืืฉื ื ืืืืืืงืืื ืฉืื ืื - ืืงืืื ืืืื. ืืคืืื, ืื ืื ืืืื ืืขืื ืืืืื ืช ืืฉืืืืฉ ืืืืืจืื.
ืืืืืื ืฉ-
LinkedList ืืื ืืืขืฉื ืืื ื ืื-ืืืืื ื, ืื ื ืืืืืื ืืงืืืช ืืืืกืืฃ ืื ืืืกืืจ ืืืื ืืื ืืฉื ื ืืฆืืืื.
ืืื ื LinkedList ืืืืจื ืืืงืืจ ืืงืื, ื ืืื ืืืืืช ืฉื-
LinkedList ืืฉ ืฉื ื ืื ืืื
LinkedList() ืืื ืคืจืืืจืื ืืฉืืฉ ืืื ืืืช ืจืฉืืื ืจืืงื.
>LinkedList(Collection<? extends E> c) ืืืืขืืช ืืืฆืืจืช ืจืฉืืื ืืืืืื ืืช ืืืืื ืืื ืฉื ืืืืกืฃ ืฉืฆืืื, ืืคื ืืกืืจ ืฉืื ืืืืืจื ืขื ืืื ืืืืืจืืืจ ืฉื ืืืืกืฃ.
ืืฆืืจืช LinkedList ืืืขืฉื, ืจืฉืืื ืืงืืฉืจืช (Java ืื ืืื ืฉืคื ืืืจืช) ืืืจืืืช ืืจืฆืฃ ืฉื ืฆืืชืื. ืื ืฆืืืช ื ืืขื ืืืืกื ืืืืืืงื ืืกืื ืฉืืืืืจ ืืขืช ืืืฆืืจื. ืื ืืื ืืืฆืืจ
LinkedList , ืงืื Java ืืื ืืื:
LinkedList < Integer > myList = new LinkedList < > ( ) ;
ืืฉ ืื ื ืืืจื ืืฉืืืจ ืจืฆืฃ ืฉื ืืกืคืจืื ืฉืืืื ืืงืืฉืืจืื ืืฉืื ืื. ืขื ืืืช, ืืื ืจืืง ืืจืืข.
LinkedList ืคืขืืืืช ืขืืงืจืืืช ืืจืืื, ืืืงืจื ืฉื Collections ืืชื ืืืื ืืืื ืืก ืืืื ืืื ื-
LinkedList (ืืงืฆืื ืื ืืืืฆืข), ืืืกืืจ ืืฉื ืืืงืื ืืืื ื ืืคื ืืื ืืงืก. ืื ืื ื ืื:
add(E element) ืืืกืืฃ ืืช ืืืืื ื ืฉืฆืืื ืืกืืฃ ืจืฉืืื ืื;
add(int index, E element) ืืืกืคืช ืืืืื ื ืืืื ืืงืก ืืืืงืื ืฉืฆืืื ;
get(int index) ืืืืืจื ืืช ืืืืื ื ืืืืงืื ืฉืฆืืื ืืจืฉืืื ืื;
remove(int index) ืืกืืจ ืืช ืืืืื ื ืฉื ืืฆื ืืืื ืืงืก ืืืืงืื;
remove(Object o) ืืกืืจ ืืช ืืืืคืข ืืจืืฉืื ืฉื ? o ืืืื ื ืืืจืฉืืื ืืื ืื ืืื ืงืืื.
remove() ืืืืืจ ืืืกืืจ ืืช ืืืืื ื ืืจืืฉืื ืืจืฉืืื.
ืืืฉืื ืจืฉืืื ืืงืืฉืจืช ื-Java, ืืืกืคื ืืืกืจื ืฉื ืืืื ืืื. ืืืืื ืืื ื ื ืกื ืืช ืืคืขืืืืช ืืืื ืขื ืชืจืืื. ืจืืฉืืช, ืืืฉืื Java LinkedList: ืืฆืืจืช LinkedList ืฉื ืืืจืืืืช, ืืืกืคืช 3 ืืืื ืืื. ืืืืจ ืืื ืืกืจ ืืื ืืื ืืืกืฃ ืืื ืืืืฆืข.
public class MyLinkedTest {
public static void main ( String [ ] args) {
String h1 = "my" ;
String h2 = "favorite" ;
String h3 = "book" ;
LinkedList < String > linkedList = new LinkedList ( ) ;
linkedList. add ( h1) ;
linkedList. add ( h2) ;
linkedList. add ( h3) ;
System . out. println ( "my list after adding 3 elements:" ) ;
System . out. println ( linkedList) ;
System . out. println ( "element #2 of my list:" ) ;
System . out. println ( linkedList. get ( 2 ) ) ;
linkedList. remove ( 1 ) ;
System . out. println ( "my list after removing #1:" ) ;
System . out. println ( linkedList) ;
linkedList. add ( 1 , "first" ) ;
System . out. println ( "my list after adding an element in the middle" ) ;
System . out. println ( linkedList) ;
}
ืืชืืฆืื ืฉื ืืคืขืืช ืชืืื ืืช ืื:
my list after adding 3 elements:
[ my, favorite, book]
element #2 of my list:
book
my list after removing #1 :
[ my, book]
my list after adding an element in the middle
[ my, first, book]
LinkedList ืืื ืืืง ืืืกืืจืช
ืืืืกืฃ , ืืชื ืืืื ืืืฉืชืืฉ ืืืืืจืืืจ ืืื ืืืกืืจ ืืืื ืืื, ืืื ืื ืืืืจืืืจ ืืืืื ืืจืฉืืืืช -
ListIterator . ืืคืืื ืืืชืจ, ืคืขืืืืช ืขื ืืืืจืืืจ ืืกืคืงืืช ืืช ืืืชืจืื ืืช ืืขืืงืจืืื ืฉื ืืืืงื
LinkedList : ืืืฆืืขืื ืืืืื ืฉื ืคืขืืืืช ืืืกืคื/ืืืืงื. ืืืืฆืขืืช Iterator ืืชื ืขืฉืื ืืงืื ืืื ืงืืืข ืขืืืจื. ืืืืฉื ืืืืจ ืื, ื ืืชืื ืืืืื ืืงืื ืืื ืืืฉืืืช ืืื
ArrayList ืืืื
LinkedList+Iterator
Iterator.remove() ืืกืืจ ืืช ืืืืื ื ืืืืจืื ืฉืืืืืจ ืขื ืืื ืืืืจืืืจ ืื.
ListIterator.add(E element) ืืืกืืฃ ืืืื ื ืืจืฉืืื
Java LinkedList ืืืืื: ืืื Iterator ืขืืื ืืื ืืฉ ืื ื ืงืื ืืืืื ืฉื Java
LinkedList ืงืื , ืฉืื ืื ืื ื ืื ืกืื ืืืืกืืฃ ืืืืืืง ืืจื Iterator.
public class MyLinkedTest {
public static void main ( String [ ] args) {
String h1 = "my" ;
String h2 = "favorite" ;
String h3 = "book" ;
LinkedList < String > linkedList = new LinkedList ( ) ;
linkedList. add ( h1) ;
linkedList. add ( h2) ;
linkedList. add ( h3) ;
Iterator i = linkedList. iterator ( ) ;
String str = "" ;
while ( i. hasNext ( ) ) {
str = ( String ) i. next ( ) ;
if ( str. equals ( "favorite" ) ) {
i. remove ( ) ;
break ;
}
}
System . out. println ( "linkedList after removing element via Iterator:" ) ;
System . out. println ( linkedList) ;
ListIterator listIterator = linkedList. listIterator ( ) ;
listIterator. add ( "I've got" ) ;
System . out. println ( "linkedList after adding the element via ListIterator" ) ;
System . out. println ( linkedList) ;
}
}
ืืชืืฆืื ืฉื ืืคืขืืช ืชืืื ืืช ืื:
linkedList after removing element via Iterator:
[my, book]
linkedList after adding the element via ListIterator
[I've got, my, book]
ืคืขืืืืช ื ืืกืคืืช ืฉื Java
LinkedList :
addFirst() , addLast() ืืืกืืคืื ืืืื ื ืืืชืืื/ืกืืฃ ืฉื ืจืฉืืื
clear() ืืกืืจ ืืช ืื ืืจืืืืื ืืืจืฉืืื
contains(Object o) ืืืืืจื true ืื ืืจืฉืืื ืืืืื ืืช ืืืืื ื o.
indexOf(Object o) ืืืืืจ ืืช ืืืื ืืงืก ืฉื ืืืืคืขื ืืจืืฉืื ื ืฉื ืืืื ื o, ืื -1 ืื ืืื ืื ืืจืฉืืื.
set(int index, E element) ืืืืืฃ ืืช ืืืืื ื ืืืืงืื ืืืื ืืงืก ืืืืื ื
size()ืืืืืจ ืืช ืืืืช ืืืืื ืืื ืืจืฉืืื.
toArray() ืืืืืจ ืืขืจื ืืืืื ืืช ืื ืืืืื ืืื ืฉื ืืจืฉืืื ืืืืืื ื ืืจืืฉืื ืืขื ืืืืจืื.
ืืื, ืืืืืชื ืชืืจ ืืืืื ืฉื ื,
ื-LinkedList ื-Java ืืฉ ืคืขืืืืช ืกืคืฆืืคืืืช ืืืกืืื:
pop() ืฉืืงืคืืฅ ืืืื ื ืืืืืกื ืืช (ืืืืฆื ืขื ืืื ืืจืฉืืื)
push(E e) ืฉืืืืฃ ืืืื ื ืื ืืขืจืืื (ืืืืฆื ืขื ืืื ืจืฉืืื ืื)
ืืืฆื ืืืคืื LinkedList: ืืืืื ืื ื ืืืืื ืงืื ื, ืืฉืืื ืคืืคืืืจืืช ืื ืงืื ืืืชืืืืื. ืืฉ ืื ื
LinkedList ืืฆืจืื ืืืคืื ืืืชื. ืืืืืืจืืชื ืืงื ืืืืชืจ ืืื ืืขืืืจ ืขื ื-
LinkedList ืืกืืจ ืืคืื ืืืืื ืืก ืื ืืืื ื ืืืืฉ. ืขื ืืืช, ืืืื ืชืืฆื ืืจื ืืืื ืืืชืจ? ืืืื ืืงืื ืฉื ืชืืื ืืช Java ืืจืฉืืื ืืงืืฉืจืช ืืคืืื:
public class MyLinkedTest {
public static void main ( String [ ] args) {
String h1 = "my" ;
String h2 = "favorite" ;
String h3 = "book" ;
LinkedList < String > linkedList = new LinkedList ( ) ;
linkedList. add ( h1) ;
linkedList. add ( h2) ;
linkedList. add ( h3) ;
System . out. println ( linkedList) ;
System . out. println ( "Reversed LinkedList:" ) ;
System . out. println ( reverseLinkedList ( linkedList) ) ;
}
public static LinkedList < String > reverseLinkedList ( LinkedList < String > list)
{
LinkedList < String > LinkedList = new LinkedList < String > ( ) ;
for ( int i = list. size ( ) - 1 ; i >= 0 ; i-- ) {
LinkedList . add ( list. get ( i) ) ;
}
return LinkedList ;
}
}
ืืชืืฆืื:
[I've got, my, book]
Reversed LinkedList:
[book, my, I've got]
LinkedList ืืขืืืช ArrayList: ืืชื ืืืฉืชืืฉ ืืจืืฉืื ืื
LinkedList ืืื
ArrayList ืื ืืืฉืืืื ืฉื ืืืฉืง
List .
LinkedList ืืืืฉืืช ืืืชื ืขื ืจืฉืืื ืืงืืฉืจืช ืืคืืื.
ArrayList ืืืืฉื ืืืชื ืืืืฆืขืืช ืืขืจื ืฉืื ืื ืืืื ืืื ืื. ืืคื ืฉืืชื ืืืจ ืืืืข, ืื ืฆืืืช ืฉื
LinkedList ืืืื ืืืืืืงืืื ืืฉืชื ืืคื ืืืช ืืฉืื ืื. ืืืฉืืขืืช ืืื ืขืืืืืช ืืืืจืื ื ืืกืคืืช ืขืืืจ ืืืกืื ืืคื ืืืช ืืื ืืืื ืืื ืืืงืจื ืฉื Java
LinkedList .
ArrayList ืืืืฉืืช ืืืชื ืขื ืืขืจื ืฉืื ืื ืืืื ืืื ืื. ืืืง ืืคืขืืืืช
LinkedList ื-
ArrayList ื ืจืืืช ืืืืช, ืืื ืื ืคืืขืืืช ืืฆืืจื ืฉืื ื. ืืืงืจื ืฉื
ArrayList , ืืชื ืืืฆืข ืื ืืคืืืฆืืืช ืขื ืืขืจืืื ืคื ืืืืื, ื-
LinkedList - ืขื ืืคื ืืืช.
ArrayList ืืื ืืืืฉืื ืืคืืคืืืจื ืืืืชืจ
ืฉื List . ืืชื ืืืืื ืฆืจืื ืืืฉืชืืฉ
ื-ArrayList ืืืฉืจ ืืืืฉื ืืืื ืืงืก ืืื ืืขืืืคืืช ืืืืืื ืฉืคืขืืืืช ืืื ืืืืฆืขืืช ืืืื ืงืืืข. ืืืกืคื ืืกืืฃ ืืจืฉืืื ืืืืืฆืข ื ืขืฉืืช ืื ืืื ืืืื ืงืืืข. ืืชืจื ืืื,
ื- ArrayList ืืื ืขืืืืืช ื ืืกืคืืช ืขืืืจ ืืืกืื ืืืืจื ืฉื ืืืื ืืื. ืืชื ืืืื ืืกืคืืจ ืืืกืจืื ืืช ืืช ืืืืจืืช ืคืขืืืืช ืืืื ืกื ืืืืกืจื ืืืฉืจ ืืื ื ืขืฉืืช ืื ืืกืืฃ ืืจืฉืืื.
LinkedList ืฉืืืืฉื ืืืชืจ ืืืงืจื ืฉื ืืืฆืืขื ืคืขืืืืช ืืืกืคื ืืืืืงื ืืืืื ืื ืืกืืืืื: ืื ืืชื ืืฉืชืืฉ ืืืืืจืืืจืื ืื ืืชืจืืฉ ืืืื ืงืืืข. ืคืขืืืืช ืืืฉื ืืคื ืืื ืืงืก ืืืืฆืขืืช ืขื ืืื ืืืคืืฉ ืืชืืืืช ืืกืืฃ (ืื ืฉืงืจืื ืืืื ืืื) ืืืืื ื ืืจืฆืื. ืขื ืืืช, ืื ืชืฉืื ืขืืืืืช ื ืืกืคืืช ืขืืืจ ืืืกืื ืืคื ืืืช ืืื ืืืื ืืื. ืื ืื ื ืคืขืืืืช
LinkedList ื-
ArrayList ืกืื ืืจืืืืช ืขื ืืื ื ืจืืฆื ืืืืืจืืชืืืื. N ืืชืืืืก ืืืกืคืจ ืืคืจืืืื ืฉืืืจ ื ืืฆืืื ืืจืฉืืื.
O(N) ืคืืจืืฉื ืฉืืืงืจื ืืืจืืข ืขืืื ื "ืืขืืืจ" ืขื ืื ืืจืฉืืื ืขื ืฉื ืืฆื ืืืืงืื ืืืจืืฉ, ืืืฉื, ืืืื ืกืช ืืืืื ื ืืืืฉ ืืจืฉืืื.
O(1) ืคืืจืืฉื ืฉืืคืขืืื ืืชืจืืฉืช ืืืื ืงืืืข, ืืื ืชืืืช ืืืกืคืจ ืืคืจืืืื.
ืืืจืืืืช ืืื ืฉื LinkedList
ืคืขืืืช Java LinkedList
ืืขืืืืช ืืืืืจืืชืืืช
get(int index)
O(n) , ืืืืืฆืข - n/4 ืฉืืืื, ืืืฉืจ n ืืื ืืืื LinkedList
add(E element)
O(1)
add(int index, E element)
O(n) , ืืืืืฆืข - n/4 ืฉืืืื; ืื ืืื ืืงืก = 0 ืื O(1) , ืื ืื ืืชื ืฆืจืื ืืืืกืืฃ ืืฉืื ืืชืืืืช ืืจืฉืืื, LinkedList<E> ืืืืื ืืืืืช ืืืืจื ืืืื
remove(int index)
O(n) , ืืืืืฆืข - n/4 ืฉืืืื
Iterator.remove()
O(1) ืืืื ืืกืืื ืืขืืงืจืืช ืืืฉืชืืฉ ื-LinkedList<E>
ืืืจืืืืช ืืื ArrayList
ืคืขืืืช LinkedList
ืืขืืืืช ืืืืืจืืชืืืช
get(int index)
O(1) , ืืืช ืืกืืืืช ืืขืืงืจืืืช ืืืฉืชืืฉ ื-ArrayList<E>
add(E element)
O(n) ืืื ืืืงืจื ืืืจืืข ืืืืชืจ ืฉืื ืืฉ ืืฉื ืืช ืืช ืืืืื ืืืืขืชืืง ืืช ืืืขืจื, ืืืื ืืคืืขื, ืื ืื ืื ืื ืืจืืข
add(int index, E element)
O(n) , n/2 ืฆืขืืื ืืืืืฆืข
remove(int index)
O(n) , n/2 ืฆืขืืื ืืืืืฆืข
Iterator.remove()
O(n) , n/2 ืฆืขืืื ืืืืืฆืข
ListIterator.add(ืืืื ื E)
O(n) , n/2 ืฆืขืืื ืืืืืฆืข
ืืชื ืืืฉืชืืฉ ื-LinkedList: ืืืืื ืืืืื,
ArrayList ืืื ืืืืฉืื ืืคืืคืืืจื ืืืืชืจ
ืฉื List . ืขื ืืืช, ืืชื ืขืืื ืืคืืืฉ ืืช ืืืฆืืื ืฉืืื ืืฉ ืฆืืจื ืืคืขืืืืช ืืืืกืคื/ืืกืจื ืืขืชืื ืงืจืืืืช ืืื. ืืืงืจื ืืื,
LinkedList ืืืื ืขื Iterator ืืืื ืืืืืช ืืืขืื. ืื ื ืืืืื. ืืฉ ืื ื ืจืฉืืื ืืจืืื, ืืขืืื ื ืืืืืง ืื ืจืืื ืืืจืฉืืื ืืื. ืืื ื ืขืฉื ืืช ืืืฉืืื ืืื ืขื
ArrayList ื-
LinkedList +
Iterator . ืื ื ืืฉืืืื ืืช ืืืื ืฉื ืื ืคืขืืื ืืืืคืืกืื ืืืชื ืืชืื ืืืกืืฃ. ืื ื ืืงืื:
import java. util. * ;
import java. util. function. BiPredicate ;
public class ListTest2 {
static void removeElements ( List < Double > list, BiPredicate < Integer , Double > predicate) {
ListIterator < Double > iterator = list. listIterator ( list. size ( ) ) ;
while ( iterator. hasPrevious ( ) ) {
Double element = iterator. previous ( ) ;
if ( predicate. test ( iterator. previousIndex ( ) + 1 , element) ) {
iterator. remove ( ) ;
}
}
}
static class TestCase1 {
public static void main ( String [ ] args) {
LinkedList < Double > testedList1 = new LinkedList < > ( Arrays . asList ( 2.0 , 9.0 , 3.0 , 12.0 , 5.0 ) ) ;
removeElements ( testedList1, ( index, value) -> ( value % 3 == 0 ) ) ;
System . out. println ( "testedList1 after removeElements(..): " + testedList1) ;
ArrayList < Double > testedList2 = new ArrayList < > ( Arrays . asList ( 2.0 , 9.0 , 3.0 , 12.0 , 5.0 ) ) ;
removeElements ( testedList2, ( index, value) -> ( value % 3 == 0 ) ) ;
System . out. println ( "testedList2 after removeElements(..): " + testedList2) ;
}
}
static class TestLinkedListPerformance {
public static void main ( String [ ] args) {
LinkedList < Double > testedList = new LinkedList < > ( ) ;
System . out. println ( "start filling testedList" ) ;
for ( int i = 0 ; i < 2 * 1000 * 1000 ; ++ i) {
testedList. add ( ( double ) i) ;
}
System . out. println ( "start treating testedList" ) ;
long startTime = System . nanoTime ( ) ;
removeElements ( testedList, ( index, value) -> ( value % 3 == 0 ) ) ;
long endTime = System . nanoTime ( ) ;
System . out. println ( "testedList.size after removeElements(..): " + testedList. size ( ) ) ;
System . out. println ( "removeElements(..) takes (seconds): " + ( ( double ) ( endTime - startTime) ) / 1000000000 ) ;
}
}
static class TestArrayListPerformance {
public static void main ( String [ ] args) {
ArrayList < Double > testedList = new ArrayList < > ( ) ;
System . out. println ( "start filling testedList" ) ;
for ( int i = 0 ; i < 2 * 1000 * 1000 ; ++ i) {
testedList. add ( ( double ) i) ;
}
System . out. println ( "start treating testedList" ) ;
long startTime = System . nanoTime ( ) ;
removeElements ( testedList, ( index, value) -> ( value % 3 == 0 ) ) ;
long endTime = System . nanoTime ( ) ;
System . out. println ( "testedList.size after removeElements(..): " + testedList. size ( ) ) ;
System . out. println ( "removeElements(..) takes (seconds): " + ( ( double ) ( endTime - startTime) ) / 1000000000 ) ;
}
}
}
ืชืืฆืื ืขืืืจ ArrayList:
start filling testedList
start treating testedList
testedList.size after removeElements(..): 1333333
removeElements(..) takes (seconds): 481.8824414
ืชืืฆืื ืขืืืจ LinkedList:
start filling testedList
start treating testedList
testedList. size after removeElements ( . . ) : 1333333
removeElements ( . . ) takes ( seconds) : 0.4586458
ืืคื ืฉืืชื ืืืื ืืจืืืช ืืืงืจื ืื LinkedList ืืื ืืจืื ืืืชืจ ืืขืื. ืืื ื ืืื ืื ืื. ืืคืืชืื ืชืืื ื ืืืืชื ืืฉืืืืฉ
ื-LinkedList ืืื ืกืื ืฉื ืืืจืืข ื ืืืจ. ืขื ืืืช, ืืืฉ ืืงืฆืืข ืฆืจืื ืืืขืช ืขื ืงืืืื ืฉื ืืื ื ื ืชืื ืื ืื ืืขื ืืชืจืื ืืชืื. ืื ืืงืื ืืืืชื
LinkedList ืืื ืืืจื ื ืืืจ, ืืจืืืื ืืช Java Junior ืื ืืืื ืคืืคืืืจื. ืืขืืืื, ืื ื ืื ืฉืืชื ืืืืฉืข ืืืื ืขื
LinkedList :
AddOn: ืจืฉืืื ืืงืืฉืจืช ืืืืื ืฉื Java ืืื
ืจืฉืืื ืืงืืฉืจืช ืืืืื ืืื ืืืืกืฃ ืืงืืืกื ืื'ืืืื,
ืจืฉืืื ืืงืืฉืจืช ืืืืื ืืื ืืื ื ืฉืื ืื ืฆืืืช ืืืื ืืืืืืงื ืืืคื ืื ืืฆืืืช ืืื, ืื ืื ืขืืืจ ืืฆืืืช ืืงืืื. Java
LinkedList ืืื ืื-ืงืืฉืืจืืช, ืืื ืืฃ ืืื ืื ืืคืจืืข ืื ืืืฆืืจ ืืื ื ื ืชืื ืื ืืฉืื, ืืืื Singly ,code>Linked List. ืืืื ืืกืคืจ ืฉืืืื ืืคืชืจืื ืืืฉืืืืช ืืืื:
ืฆืืจ ืืืืงืช Node ืขื ืฉืชื ืชืืื ืืช, ื ืชืื ืื ืืืื. ืืื ืืื ืืคื ืื ืืฆืืืช ืืื.
ืฆืืจ ืืืืงื FirstLast ืขื ืฉืชื ืชืืื ืืช, ืจืืฉ ืืื ื.
ืฆืืจ ืฉืืื add() ืืื ืืืืกืืฃ ืฆืืืช ืืืฉ ืืจืฉืืื. ืืืืง ืื ืืจืฉืืื ืจืืงื ืชืืืื ( head == null ). ืื ืื, ืจืืฉ ืืื ื ืืชืืืืกืื ืืฆืืืช ืืืืฉ. ืื ืืจืฉืืื ืื ืจืืงื, ืืฆืืืช ืืืืฉ ืืชืืืกืฃ ืืกืืฃ, ืื ืฉืืชืืื ื ืืืื ืฉื ืืื ื ืืชืืืืกืช ืืฆืืืช ืฉื ืืกืฃ ืืืฆืืืช ืืืืฉ ืืืคื ืืื ื ืืจืฉืืื.
ืืื, ืืชื ืืืื ืื ืกืืช ืืืฆืืจ
LinkedList ืืฉืื ืืชืจืืื. ืืืฆืืื ืืืืืืื.
GO TO FULL VERSION