Java ArrayList yra „Java“ dalis kolekcijų sistema ir tai yra java.util paketo klasė. Tai suteikia mums dinaminius „Java“ masyvus. Tačiau jis gali būti lėtesnis nei standartiniai masyvai, bet gali būti naudingas programose, kuriose reikia daug manipuliuoti masyve. Ši klasė randama java.util paketą. Pagrindinis „ArrayList“ pranašumas „Java“. yra tai, kad jei deklaruojame masyvą, turime paminėti dydį, bet ArrayList nereikia minėti ArrayList dydžio. Jei norite paminėti dydį, galite tai padaryti.
Turinys
- Kas yra „ArrayList“ programoje „Java“?
- Java ArrayList pavyzdys
- Svarbios „ArrayList“ savybės „Java“.
- „ArrayList“ konstruktoriai
- ArrayList Java metodais
- „ArrayList“ atliekamos operacijos
- Java ArrayList sudėtingumas
- Java ArrayList pranašumai
- Java ArrayList trūkumai
- Išvada
- ArrayList DUK
Kas yra „ArrayList“ programoje „Java“?
„ArrayList“ yra „Java“ klasė, įdiegta naudojant sąrašo sąsają. „Java ArrayList“, kaip rodo pavadinimas, suteikia dinaminio masyvo funkcionalumą, kai dydis nėra fiksuotas kaip masyvas. Be to, kaip kolekcijų sistemos dalis, ji turi daug funkcijų, kurių nėra su masyvais.
Iliustracija:
Patikrinkime „ArrayList“ su „Integer“ objekto tipu, saugomu jame su vaizdu.
Parsisiųsti autocad 2019 anglišką mediafire
Java ArrayList pavyzdys
1 pavyzdys: Šis įgyvendinimas parodo, kaip sukurti ir naudoti ArrayList, nurodant jo dydį.
Java // Java program to demonstrate the // working of ArrayList import java.io.*; import java.util.*; class ArrayListExample { public static void main(String[] args) { // Size of the // ArrayList int n = 5; // Declaring the ArrayList with // initial size n ArrayList arr1 = naujas ArrayList (n); // ArrayList deklaravimas ArrayList arr2 = naujas ArrayList (); // ArrayList spausdinimas System.out.println('Array 1:' + arr1); System.out.println('Array 2:' + arr2); // Naujų elementų pridėjimas // sąrašo pabaigoje (int i = 1; i<= n; i++) { arr1.add(i); arr2.add(i); } // Printing the ArrayList System.out.println('Array 1:' + arr1); System.out.println('Array 2:' + arr2); } }>
Išvestis
Array 1:[] Array 2:[] Array 1:[1, 2, 3, 4, 5] Array 2:[1, 2, 3, 4, 5]>
Aukščiau pateiktos programos paaiškinimas:
ArrayList yra dinaminis masyvas ir mes neturime nurodyti jo dydžio jį kuriant, masyvo dydis automatiškai didėja, kai dinamiškai pridedame ir pašaliname elementus. Nors tikrasis bibliotekos įgyvendinimas gali būti sudėtingesnis, toliau pateikiama labai pagrindinė idėja, paaiškinanti masyvo veikimą, kai masyvas tampa pilnas ir jei bandome pridėti elementą:
- Sukuria didesnio dydžio atmintį krūvos atmintyje (pvz., dvigubo dydžio atmintį).
- Nukopijuoja esamus atminties elementus į naują atmintį.
- Naujas elementas pridedamas dabar, nes dabar yra daugiau atminties.
- Ištrinkite seną atmintį.
Svarbios „ArrayList“ savybės „Java“.
- ArrayList paveldi Abstractsąrašas klasę ir įgyvendina Sąrašo sąsaja .
- ArrayList inicijuojamas pagal dydį. Tačiau dydis automatiškai padidinamas, jei kolekcija didėja arba susitraukia, jei objektų pašalinami iš kolekcijos.
- Java ArrayList leidžia mums atsitiktinai pasiekti sąrašą.
- ArrayList negali būti naudojamas vyniojimo klasė tokiems atvejams.
- „ArrayList“ programoje „Java“ gali būti matomas kaip a vektorius C++ kalboje .
- ArrayList nėra sinchronizuotas. Jo lygiavertė sinchronizuota klasė Java yra Vektorius .
Supraskime, „Java ArrayList“ nuodugniai . Pažvelkite į žemiau esantį paveikslėlį:
Aukščiau pateiktoje iliustracijoje Abstractsąrašas , CopyOnWriteArrayList , ir AbstractSequentialList yra klasės, kurios įgyvendina sąrašo sąsają. Kiekvienoje iš minėtų klasių įdiegtas atskiras funkcionalumas. Jie yra:
- Santraukų sąrašas: Ši klasė naudojama nekeičiamam sąrašui įgyvendinti, kuriam reikia tik išplėsti šią AbstractList klasę ir įdiegti tik gauti () ir dydis () metodus.
- CopyOnWriteArrayList: Ši klasė įgyvendina sąrašo sąsają. Tai patobulinta versija ArrayList kuriame visi pakeitimai (pridėti, nustatyti, pašalinti ir t. t.) įgyvendinami darant naują sąrašo kopiją.
- AbstractSequentialList: Ši klasė įgyvendina Kolekcijos sąsaja ir AbstractCollection klasė. Ši klasė naudojama nekeičiamam sąrašui įgyvendinti, kuriam reikia tik išplėsti šią AbstractList klasę ir įdiegti tik gauti () ir dydis () metodus.
„ArrayList“ konstruktoriai „Java“.
Norėdami sukurti ArrayList, turime sukurti ArrayList klasės objektą. „ArrayList“ klasė susideda iš įvairių konstruktoriai kurios leidžia sukurti masyvo sąrašą. Šioje klasėje galimi šie konstruktoriai:
1. ArrayList()
Šis konstruktorius naudojamas tuščiam masyvo sąrašui sudaryti. Jei norime sukurti tuščią ArrayList su pavadinimu arr , tada jį galima sukurti taip:
ArrayList arr = new ArrayList();>
2. ArrayList (rinkinys c)
Šis konstruktorius naudojamas kuriant masyvo sąrašą, inicijuotą su elementais iš rinkinio c. Tarkime, kad norime sukurti ArrayList arr, kuriame būtų kolekcijoje c esantys elementai, tada jį galima sukurti taip:
ArrayList arr = new ArrayList(c);>
3. ArrayList (vidinė talpa)
Šis konstruktorius naudojamas masyvo sąrašui sudaryti su nurodyta pradine talpa. Tarkime, kad norime sukurti ArrayList, kurio pradinis dydis yra N, tada jį galima sukurti taip:
pilna i d e forma
ArrayList arr = new ArrayList(N);>
Java ArrayList metodai
Metodas | apibūdinimas |
---|---|
pridėti (int indeksas, objekto elementas) | Šis metodas naudojamas įterpti konkretų elementą tam tikroje sąrašo pozicijos indekse. |
pridėti (O objektas) | Šis metodas naudojamas konkrečiam elementui pridėti prie sąrašo pabaigos. |
pridėti viską (C rinkinys) | Šis metodas naudojamas visiems elementams iš konkrečios kolekcijos pridėti prie minėto sąrašo pabaigos tokia tvarka, kad reikšmes grąžintų nurodytos kolekcijos iteratorius. |
pridėti viską (int indeksas, rinkinys C) | Naudojamas įterpti visus elementus, prasidedančius nuo nurodytos pozicijos, iš konkrečios kolekcijos į minėtą sąrašą. |
aišku () | Šis metodas naudojamas pašalinti visus elementus iš bet kurio sąrašo. |
klonas () | Šis metodas naudojamas norint grąžinti negilią „ArrayList“ kopiją „Java“. |
yra? (O objektas) | Grąžina true, jei šiame sąraše yra nurodytas elementas. |
užtikrintiCapacity? (int minCapacity) | Jei reikia, padidina šio „ArrayList“ egzemplioriaus talpą, kad užtikrintų, jog jame gali būti bent tiek elementų, kiek nurodyta minimalaus pajėgumo argumentu. |
už kiekvieną? (vartotojo veiksmas) | Atlieka nurodytą veiksmą kiekvienam Iterable elementui, kol visi elementai bus apdoroti arba veiksmas padarys išimtį. |
gauti? (int index) | Grąžina elementą nurodytoje šio sąrašo vietoje. |
indexOf (O objektas) | Rodyklė, pirmą kartą pasirodžiusi tam tikram elementui, grąžinama arba -1, jei elemento sąraše nėra. |
Yra tuščias?() | Grąžina tiesa, jei šiame sąraše nėra elementų. |
paskutinis indeksas (O objektas) | Pateikiamas paskutinio konkretaus elemento pasireiškimo indeksas arba -1, jei elemento sąraše nėra. |
listIterator?() | Pateikia sąrašo iteratorių virš šio sąrašo elementų (tinkama seka). |
listIterator?(int index) | Grąžina sąrašo iteratorių virš šio sąrašo elementų (tinkama seka), pradedant nuo nurodytos sąrašo vietos. |
pašalinti? (int index) | Pašalina elementą nurodytoje šio sąrašo vietoje. |
pašalinti? (O objektas) | Pašalina pirmąjį nurodyto elemento pasireiškimą iš šio sąrašo, jei jis yra. |
pašalinti viską? (C rinkinys) | Iš šio sąrašo pašalinami visi jo elementai, esantys nurodytoje kolekcijoje. |
RemoveIf? (Predikatinis filtras) | Pašalina visus šio rinkinio elementus, kurie atitinka nurodytą predikatą. |
pašalinti diapazoną?(int fromIndex, int toIndex) | Iš šio sąrašo pašalinami visi elementai, kurių indeksas yra tarp fromIndex, inclusive ir toIndex, išskirtinis. |
išlaikyti viską? (C rinkinys) | Išsaugo tik šio sąrašo elementus, kurie yra nurodytoje kolekcijoje. |
rinkinys?(int indeksas, E elementas) | Pakeičia elementą nurodytoje pozicijoje šiame sąraše nurodytu elementu. |
dydis? () | Grąžina šio sąrašo elementų skaičių. |
skirstytuvas? () | Sukuria vėlai įrišamą ir greitą skirstytuvą per šio sąrašo elementus. |
posąrašas?(int fromIndex, int toIndex) | Grąžina šio sąrašo dalies tarp nurodyto fromIndex, imtinai ir toIndex, išskyrus, rodinį. |
toArray () | Šis metodas naudojamas norint grąžinti masyvą, kuriame yra visi sąrašo elementai teisinga tvarka. |
toArray (Object[] O) | Jis taip pat naudojamas grąžinti masyvą, kuriame yra visi šio sąrašo elementai teisinga tvarka, kaip ir ankstesnis metodas. |
apkarpyti dydį() | Šis metodas naudojamas norint sumažinti ArrayList egzemplioriaus talpą iki dabartinio sąrašo dydžio. |
Pastaba: Taip pat galite sukurti bendrą ArrayList:
// Kuriamas bendrasis sveikasis skaičius ArrayList
ArrayList arrli = naujas ArrayList();
Kai kurie pagrindiniai „ArrayList“ taškai „Java“.
- ArrayList yra pabraukta duomenų struktūra, keičiamo dydžio masyvas arba plečiamas masyvas.
- Leidžiami „ArrayList“ dublikatai.
- Įterpimo tvarka išsaugoma.
- Leidžiami heterogeniniai objektai.
- Galimas nulinis įterpimas.
Pažiūrėkime, kaip atlikti kai kurias pagrindines „ArrayList“ operacijas, kurias toliau aptarsime kartu su kiekvienos operacijos įgyvendinimu.
- Elemento įtraukimas į sąrašą / Pridėti elementą
- Elementų keitimas/ Nustatyti elementą
- Elementų pašalinimas/Ištrinti elementą
- Iteruojantys elementai
- gauti elementus
- pridėti elementus tarp dviejų skaičių
- Elementų rūšiavimas
- ArrayList dydis
„ArrayList“ atliekamos operacijos
1. Elementų pridėjimas
Norėdami įtraukti elementą į ArrayList, galime naudoti add() metodas . Šis metodas yra perkrautas, kad būtų galima atlikti kelias operacijas pagal skirtingus parametrus. Jie yra tokie:
- add(Object): Šis metodas naudojamas elementui įtraukti į ArrayList pabaigą.
- add(int index, Object): Šis metodas naudojamas elementui įtraukti į tam tikrą ArrayList indeksą.
Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas:
Java // Java Program to Add elements to An ArrayList // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String args[]) { // Creating an Array of string type ArrayListal = naujas ArrayList(); // Elementų įtraukimas į ArrayList // Pasirinktiniai įėjimai al.add('Geeks'); al.add('Geeks'); // Čia mes minime indeksą // prie kurio jis turi būti įtrauktas al.add(1, 'For'); // Visų ArrayList elementų spausdinimas System.out.println(al); } }>>
Išvestis [Geeks, For, Geeks]>
2. Keičiasi elementai
Pridėjus elementus, jei norime pakeisti elementą, tai galima padaryti naudojant rinkinys () metodas. Kadangi ArrayList yra indeksuotas, elementas, kurį norime pakeisti, yra nurodytas elemento indeksu. Todėl šis metodas paima indeksą ir atnaujintą elementą, kurį reikia įterpti į tą indeksą.
Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas:
Java // Java Program to Change elements in ArrayList // Importing all utility classes import java.util.*; // main class class GFG { // Main driver method public static void main(String args[]) { // Creating an Arraylist object of string type ArrayListal = naujas ArrayList(); // Elementų įtraukimas į Arraylist // Pasirinktiniai įvesties elementai al.add('Geeks'); al.add('Geeks'); // Pridėti, nurodant indeksą, kurį reikia pridėti al.add(1, 'Geeks'); // Arraylist elementų spausdinimas System.out.println('Pradinis ArrayList ' + al); // Nustatymų elementas 1-ame indekse al.set(1, 'For'); // Atnaujinto Arraylist spausdinimas System.out.println('Atnaujintas ArrayList ' + al); } }>>
Išvestis Norėdami pašalinti elementą iš ArrayList, galime naudoti pašalinti () metodą . Šis metodas yra perkrautas, kad būtų galima atlikti kelias operacijas pagal skirtingus parametrus. Jie yra tokie: - pašalinti (objektas): Šis metodas naudojamas tiesiog pašalinti objektą iš ArrayList. Jei tokių objektų yra keli, tada pirmasis objekto įvykis pašalinamas.
- pašalinti (int index): Kadangi „ArrayList“ yra indeksuojamas, šis metodas paima sveikojo skaičiaus reikšmę, kuri tiesiog pašalina elementą, esantį konkrečiame „ArrayList“ indekse. Pašalinus elementą, visi elementai perkeliami į kairę, kad užpildytų erdvę ir atnaujinami objektų indeksai.
Pavyzdys:
internetinės bankininkystės trūkumai
Java // Java program to Remove Elements in ArrayList // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String args[]) { // Creating an object of arraylist class ArrayListal = naujas ArrayList(); // Elementų įtraukimas į ArrayList // Pasirinktinis papildymas al.add('Geeks'); al.add('Geeks'); // Elemento pridėjimas prie tam tikro indekso al.add(1, 'For'); // Visų ArrayList elementų spausdinimas System.out.println('Pradinis ArrayList ' + al); // Elemento pašalinimas iš viršaus ArrayList al.remove(1); // Atnaujintų Arraylist elementų spausdinimas System.out.println('Po indekso pašalinimo ' + al); // Šio žodžio elemento pašalinimas iš ArrayList al.remove('Geeks'); // Dabar spausdinamas atnaujintas ArrayList System.out.println('Po objekto pašalinimo ' + al); } }>>
Išvestis Yra keletas būdų, kaip kartoti „ArrayList“. Garsiausi būdai yra naudojant pagrindinį už kilpą kartu su a get() metodas gauti elementą konkrečiame indekse ir pažengęs už kilpą . Pavyzdys
Java // Java program to Iterate the elements // in an ArrayList // Importing all utility classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String args[]) { // Creating an Arraylist of string type ArrayListal = naujas ArrayList(); // Elementų įtraukimas į ArrayList // naudojant standartinį add() metodą al.add('Geeks'); al.add('Geeks'); al.add(1, 'Už'); // Naudojant metodą Get ir // for (int i = 0; i< al.size(); i++) { System.out.print(al.get(i) + ' '); } System.out.println(); // Using the for each loop for (String str : al) System.out.print(str + ' '); } }>
Išvestis // Java program to get the elemens in ArrayList import java.io.*; import java.util.*; class GFG { public static void main (String[] args) { ArrayList sąrašas = naujas ArrayList(); // pridėti skaičių sąrašą.add(9); list.add(5); list.add(6); System.out.println(sąrašas); // gauti metodą Integer n= list.get(1); System.out.println('at indext 1 skaičius yra:'+n); } }>>
Išvestis // Java program to add the elements // between two numbers in ArrayList import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { ArrayList sąrašas = naujas ArrayList(); list.add(1); list.add(2); list.add(4); System.out.println(sąrašas); // įterpti trūkstamą elementą 3 list.add(2, 3); System.out.println(sąrašas); } }>>
Išvestis // Java Program for ArrayList Sorting import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { ArrayList sąrašas = naujas ArrayList(); list.add(2); list.add(4); list.add(3); list.add(1); System.out.println('Prieš rūšiuojant sąrašą:'); System.out.println(sąrašas); Kolekcijos.rūšiuoti(sąrašas); System.out.println('po rūšiavimo sąrašo:'); System.out.println(sąrašas); } }>>
Išvestis // Java program to find the size // of elements of an ArrayList import java.io.*; import java.util.*; class GFG { public static void main(String[] args) { ArrayList sąrašas = naujas ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); int b = sąrašas.dydis(); System.out.println('Dydis yra :' + b); } }>>
Išvestis Java ArrayList sudėtingumasOperacija
Laiko sudėtingumas
kodėl žymeklio sąsaja java
Erdvės sudėtingumas
Elemento įterpimas į ArrayList
O(1)
O(N)
Elemento pašalinimas iš ArrayList
O(N)
O(1)
Elementų perkėlimas „ArrayList“.
O(N)
O(N)
java spalvos
Elementų pakeitimas „ArrayList“.
O(1)
O(1)
„Java“ „ArrayList“ yra „Java Collections“ sistemos klasė, kuri įgyvendina sąrašo sąsają. Štai ArrayList naudojimo Java pranašumai ir trūkumai.
Java ArrayList pranašumai
- Dinaminis dydis: „ArrayList“ gali dinamiškai didėti ir mažėti, todėl prireikus galima lengvai pridėti arba pašalinti elementus.
- Lengva naudoti: „ArrayList“ yra paprasta naudoti, todėl jis yra populiarus daugelio „Java“ kūrėjų pasirinkimas.
- Greita prieiga: „ArrayList“ suteikia greitą prieigą prie elementų, nes jis įgyvendinamas kaip masyvas po gaubtu.
- Užsakytas rinkinys: „ArrayList“ išsaugo elementų tvarką, todėl galite pasiekti elementus tokia tvarka, kokia jie buvo pridėti.
- Palaiko nulines reikšmes: ArrayList gali saugoti nulines reikšmes, todėl tai naudinga tais atvejais, kai reikia pateikti reikšmės nebuvimą.
Java ArrayList trūkumai
- Lėtesnis už masyvus: „ArrayList“ yra lėtesnis už masyvus atliekant tam tikras operacijas, pvz., įterpiant elementus sąrašo viduryje.
- Padidėjęs atminties naudojimas: „ArrayList“ reikia daugiau atminties nei masyvams, nes reikia išlaikyti dinamišką dydį ir keisti dydį.
- Nesaugus gijai: „ArrayList“ neapsaugotas nuo gijų, o tai reiškia, kad kelios gijos gali vienu metu pasiekti sąrašą ir jį keisti, o tai gali sukelti lenktynių sąlygas ir duomenų sugadinimą.
- Našumo pablogėjimas: ArrayList našumas gali pablogėti didėjant sąrašo elementų skaičiui, ypač atliekant tokias operacijas kaip elementų paieška arba elementų įterpimas sąrašo viduryje.
Išvada
Žemiau pateikiami dalykai, kuriuos reikia prisiminti iš šio straipsnio:
- ArrayList yra kolekcijų sistemos dalis. Jis paveldi AbstractList klasę ir įgyvendina List sąsają.
- ArrayList yra dinaminio masyvo įgyvendinimas.
- ArrayList galima inicijuoti naudojant skirtingus konstruktorių tipus, pvz., be parametrų, perduodant kolekciją kaip parametrą ir perduodant sveikąjį skaičių kaip parametrą.
- Veiksmus ArrayList galima atlikti taip: įtraukimas, pašalinimas, kartojimas ir rūšiavimas.
ArrayList DUK
Kas yra „ArrayList“ Java?
Java ArrayList yra kolekcijų sistemos dalis. Jis naudojamas elementams laikyti, o dydis keičiamas.
Kaip duomenys saugomi „ArrayList“?
ArrayList gali saugoti duomenis, kol ArrayList dydis bus pilnas, po to ArrayList dydis padvigubinamas, jei norime saugoti daugiau elementų.
Ar ArrayList leidžia dublikatus?
Taip, ArrayList leidžia saugoti pasikartojančias vertes.