CodeGym /Java tanfolyam / /Az ArrayList használata, 2. rész

Az ArrayList használata, 2. rész

Szint , Lecke
Elérhető

1. Elem hozzáadása a lista közepére (vagy elejére).

Ha egy elemet szeretnénk beszúrni a lista közepére, akkor a listán belül ez történik.

Tegyük fel, hogy van egy 11 elemből álló listánk:

Elem hozzáadása a lista közepéhez (vagy elejéhez).

A 10 000-es számot szeretnénk beszúrni a listába az 5-ös indexnél. Ehhez csak a következőt kell végrehajtanunk:

list.add(5, 10000);

Hol listvan egy ArrayListváltozó. A add(int index, type value)módszer hozzáadja az 10000 értéket a lista 5. pozíciójához. Íme, mi történik a módszerben add():

1. lépés: A tömb minden eleme az 5. pozíciótól kezdve 1 elemmel eltolódik (másolódik) a tömb vége felé:

Elem hozzáadása a lista közepére (vagy elejére) 1

Vegye figyelembe, hogy a tömb 5. és 6. cellájának elemei most megegyeznek.

2. lépés: Írja be a 10 000 értéket az 5. cellába:

Elem hozzáadása a lista közepére (vagy elejére) 2

Most a lista a tömb összes elemét tartalmazza, az ötödik cella pedig a 10 000-es számot tartalmazza. Pont amit szerettünk volna.



2. Elem eltávolítása a listából

Egy elem listából való eltávolítása hasonló a beszúráshoz, de a folyamat fordított.

Távolítsuk el a 3. elemet a listából. Ehhez a következőt kell végrehajtanunk:

list.remove(3);

Íme, mi történik a remove() metódussal:

1. lépés: A tömb elemei a 4. pozíciótól kezdve 1 elemmel eltolódnak (másolódnak) a tömb eleje felé:

Elem eltávolítása a listából

2. lépés: A sizeváltozó értéke 1-gyel csökken.

Elem eltávolítása a listából 2

Kérjük, vegye figyelembe, hogy a tömb végén néhány szürke színű érték található. Technikailag ezek szemetek. Ezeket el kell távolítani, hogy ne zavarják a szemétszállítást .

3. lépés: A szemét eltakarítása

Elem eltávolítása a listából 3



3. Gyakorlati példák a listával való munkára Java nyelven

Írjunk néhány példát a listákkal való munkára:

Felsoroljuk az összes páros számot 1 és 20 közötti tartományban:

Kód Megjegyzések
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);
Listaobjektum létrehozása

Hurok az összes indexen 1a következőhöz : Ha az index maradék nélkül 20
osztható vele , adja hozzá a listához 2

Most jelenítsük meg a lista összes elemét a képernyőn:

Kód Megjegyzések
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   System.out.println(list.get(i));
Listaobjektum létrehozása
Hurok az összes indexen 1a következőre: Ha a szám maradék nélkül 20

osztható , adja hozzá a listához Hurok nulláról a lista méretére Minden elem megjelenítése a képernyőn 2



Elemek eltávolítása:

Most távolítsuk el az összes 4-gyel osztható elemet. Vegye figyelembe, hogy egy elem listából való eltávolítása után a fennmaradó elemek pozíciója azonnal megváltozik.

Kód Megjegyzések
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

for (int i = 0; i < list.size(); i++)
   if (list.get(i)%4 == 0)
   {
      list.remove(i);
      i--;
   }
Listaobjektum létrehozása

Cikkek az összes indexen a 1következőre 20
: Ha az index maradék nélkül osztható 2,
adja hozzá a listához

Hurok nulláról a lista méretére
Ha a lista egy eleme 4maradék nélkül osztható:

a) távolítsa el a
b) elem csökkenti a iszámlálót, így ugyanazt az indexet kapjuk a ciklus következő iterációjában

Tegyük fel, hogy el kell távolítania az utolsó 3 elemet a listából.

Ezt a következőképpen teheti meg helytelenül:

Kód Megjegyzések
ArrayList<Integer> list = new ArrayList<Integer>();

for (int i = 1; i <= 20; i++)
   if (i%2 == 0)
      list.add(i);

int n = list.size();
list.remove(n - 3);
list.remove(n - 2);
list.remove(n - 1);
Listaobjektum létrehozása

A listának 10 eleme van: 2, 4, 6, ... 20



n = 10
n - 3 = 7(9 elem maradt a listában)
n - 2 = 8(8 elem maradt a listában)
n - 1 = 9(7 elem maradt a listában)

A 7. és 8. elem eltávolítása után csak 8 elem marad a listában. Ez azt jelenti, hogy a 9. elemet nem lehet törölni – hiba történik a programban.

Az elemek eltávolításának helyes módja a következő:

1.opció 2. lehetőség
int n = list.size();
list.remove(n - 3);
list.remove(n - 3);
list.remove(n - 3);
int n = list.size();
list.remove(n - 1);
list.remove(n - 2);
list.remove(n - 3);

Az elemeket el kell távolítani vagy a végéről, vagy egy másik állandó helyről, mivel az elemek minden eltávolítási művelet után eggyel eltolódnak.


Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION