ArrayList tarjoaa jatkuvaa hakuaikaa, joten on parempi käyttää ArrayListiä, jos haku on useammin kuin lisäys- ja poistotoiminto. LinkedList tarjoaa jatkuvan ajan lisäys- ja poistotoimintoihin. Joten on parempi käyttää LinkedListiä manipulointiin.
ArrayListillä on O(1) aikamonimutkaisuus elementtien käyttämiseen get and set -menetelmien kautta.
LinkedListillä on O(n/2) aika monimutkaisuus elementtien käyttämiseen.
LinkedLinked-luokka toteuttaa myös Deque-rajapinnan, joten voit saada kaksipäisen jonon toiminnallisuuden LinkedListissä. ArrayList-luokka ei toteuta Deque-liitäntää.
Tavallaan ArrayList on parempi käyttää tietoja, kun taas LinkedList on parempi käsitellä tietoja. Molemmat luokat toteuttavat List-rajapinnan.
Esimerkki ArrayList
import java.util.*; public class ListExample { public static void main(String[] args) { //ArrayList is better to store and view data List list=new ArrayList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('Traversing ArrayList...'); for(String s:list){ System.out.println(s); } } }
Lähtö:
Traversing ArrayList... ankit peter mayank
Esimerkki LinkedList
import java.util.*; public class ListExample2 { public static void main(String[] args) { //LinkedList is better to manipulate data List list=new LinkedList(); list.add('ankit'); list.add('peter'); list.add('mayank'); System.out.println('After adding: '+list); list.remove('peter'); System.out.println('After removing: '+list); list.set(1,'vivek'); System.out.println('After changing: '+list); } }
Lähtö:
After adding: [ankit, peter, mayank] After removing: [ankit, mayank] After changing: [ankit, vivek]