Forskellen mellem liste og ArrayList i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 14 Kan 2024
Anonim
Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.
Video.: Публичное собеседование: Junior Java Developer. Пример, как происходит защита проекта после курсов.

Indhold


List og ArrayList er medlemmer af Collection framework. Liste er en samling af elementer i en sekvens, hvor hvert element er et objekt, og der fås adgang til elementer derfra (indeks). ArrayList opretter en dynamisk række objekter, der forøges eller reduceres i størrelse, når det er nødvendigt. Den primære forskel mellem Liste og ArrayList er den Liste er en grænseflade og ArrayList er en klasse. Lad os studere forskellen mellem listen og ArrayList ved hjælp af sammenligningstabellen vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningListeArrayList
GrundlæggendeListe er en grænsefladeArrayList er en standard Collection Class.
Syntaksinterface listeklasse ArrayList
Forlæng / ImplementListegrænseflade udvider Collection Framework.ArrayList udvider AbstractList og implementerer List Interface.
navnerumSystem.Collections.Generic.System.Collections.
ArbejdeDet bruges til at oprette en liste over elementer (objekter), der er knyttet til deres indeksnumre.ArrayList bruges til at oprette en dynamisk matrix, der indeholder objekter.


Definition af liste

Liste er en grænseflade som udvider Kollektion rammer. Listegrænseflade beskriver samlingen af ​​elementer, der er arrangeret i rækkefølge. Listegrænsefladen implementeres af følgende standard indsamlingsklasser som ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Listeflade har elementer, der er knyttet til deres indeksnumre. Du kan få adgang til et element på listen ved dets placering (indeks) på listen. En liste oprettet ved hjælp af Liste-grænseflade starter med et nulbaseret indeks.

Ud over de metoder, der er arvet af Collection-rammerne, definerer List-interface også nogle af sine egne metoder. Metoderne tilføjet af List-grænsefladen er, tilføj (int, E) og addAll (int, Collection). Disse metoder tilføjer et element til listen efter deres indeks. Metoder inde på listen kan kaste en undtagelse som UnsupportedOperationException hvis metoden ikke er i stand til at ændre listen. Når et objekt på en liste ikke er kompatibelt med et andet objekt på listen, så ClassCastException kastes. Nul elementer er ikke tilladt på listen, hvis du prøver at indsætte et null-objekt på listen, NullPointerException kastes.


Du kan få et element fra listen ved hjælp af få() metode. Du kan indstille værdien af ​​et element på listen vha sæt() metode. Du kan også hente underlisten fra listen ved hjælp af en metode delliste (). Det bliver praktisk at operere på sublisten i stedet for en liste.

Definition af ArrayList

En af de almindelige samlingsklasser er ArrayList, der udvides AbstractList klasse og implementerer også Liste grænseflade. ArrayList-klassen bruges til at skabe de dynamiske arrays, der vokser og krympes, når det er nødvendigt. Listen oprettet ved hjælp af ArrayList-klassen er intet andet end matrixen af ​​objekter. I Java har standardarray den faste længde, så du skal vide størrelsen på arrayet på forhånd. Men det kan være tilfældet, at du muligvis ikke ved, hvilken længde på den matrix, du har brug for, indtil kørselstiden. Derfor indsamlede rammerne ArrayList-klassen for at overvinde dette problem.

ArrayList har konstruktører, der skaber matrixen med dens inderste kapacitet. Selvom kapaciteten til objektet i klasse ArrayList øges automatisk, når elementer føjes til arrayen, kan du stadig manuelt øge kapaciteten på ArrayList-objektet ved hjælp af metoden ensureCapacity (). Det er bedre at øge kapaciteten til array oprindeligt i stedet for at omfordele hukommelsen senere. Fordi omfordeling er dyrere end allokering af hukommelsen på én gang.

  1. En af de vigtigste forskelle mellem Liste og ArrayList er, at listen er en grænseflade og ArrayList er en standardsamling klasse.
  2. Liste interface udvider Kollektion rammer, hvorimod ArrayList udvides AbstractList Klasse og det implementerer Liste grænseflader.
  3. Navneområdet for Liste-interface er System.Collection.Generic der henviser til, at navneområdet for ArrayList er System.Collection.
  4. Listegrænseflade skaber en samling af elementer, der er gemt i en rækkefølge og identificeres eller fås adgang til ved hjælp af deres indeksnummer. På den anden side opretter ArrayList en række objekter, hvor matrixen dynamisk kan vokse, når det kræves.

Konklusion:

ArrayList overvinder spørgsmålet om en statisk matrix i standard Java, dvs. arrayen kan ikke vokse i størrelse, når den først er oprettet. Når der oprettes en matrix ved hjælp af ArrayList, oprettes en dynamisk matrix, der kan vokse og skrumpe i størrelse efter behov. Standard Collection-klassen ArrayList udvider List-grænsefladen.