Es vienmēr esmu bijis viens no tiem, kas vienkārši izmanto:
List<String> names = new ArrayList<>();
Es izmantoju interfeisu kā tipa nosaukumu portability, lai, uzdodot šādus jautājumus, es varētu pārstrādāt savu kodu.
Kad LinkedList
1 būtu jāizmanto vairāk nekā ArrayList
un otrādi?
Tas ir efektivitātes jautājums. LinkedList
ātri pievieno un dzēš elementus, bet lēni piekļūst konkrētam elementam. ArrayList
ir ātrs, lai piekļūtu konkrētam elementam, bet var būt lēns, lai pievienotu abos galos, un īpaši lēns, lai dzēstu vidū.
Array vs ArrayList vs LinkedList vs Vector ir aprakstīts sīkāk, tāpat kā Saistītais saraksts.
ArrayList
ir pieejams izlases veidā, bet LinkedList
ir ļoti lēti paplašināms un no tā izņemt elementus. Lielākajā daļā gadījumu ArrayList
ir piemērots.
Ja vien jūs neesat izveidojis lielus sarakstus un neesat izmērījis šauru vietu, jums, iespējams, nekad nebūs jāuztraucas par šo atšķirību.
Tas ir atkarīgs no tā, kādas operācijas vairāk veiksiet sarakstā.
ArrayList
ir ātrāks, lai piekļūtu indeksētai vērtībai. Tas ir daudz sliktāk, ja ievietojat vai dzēšat objektus.
Lai uzzinātu vairāk, izlasiet jebkuru rakstu, kurā aprakstīta atšķirība starp masīviem un saistītajiem sarakstiem.