1. Pagdaragdag ng elemento sa gitna (o sa simula) ng isang listahan

Kung gusto naming maglagay ng elemento sa gitna ng listahan, narito ang mangyayari sa loob ng listahan.

Ipagpalagay na mayroon kaming isang listahan ng 11 elemento:

Pagdaragdag ng elemento sa gitna (o sa simula) ng isang listahan

Nais naming ipasok ang numerong 10,000 sa listahan sa index 5. Para magawa ito, kailangan lang nating i-execute:

list.add(5, 10000);

Nasaan listang ArrayListvariable. Ang add(int index, type value)pamamaraan ay nagdaragdag ng halaga na 10000 sa posisyon 5 sa listahan. Narito kung ano ang nangyayari sa add()pamamaraan:

Hakbang 1: Ang lahat ng elemento ng array, simula sa ika-5 posisyon, ay ililipat (kokopyahin) ng 1 elemento patungo sa dulo ng array:

Pagdaragdag ng elemento sa gitna (o sa simula) ng isang listahan 1

Tandaan na ang mga elemento sa ika-5 at ika-6 na cell ng array ay pareho na ngayon.

Hakbang 2: Isulat ang value na 10,000 sa ika-5 cell:

Pagdaragdag ng elemento sa gitna (o sa simula) ng isang listahan 2

Ngayon ang listahan ay naglalaman ng lahat ng mga elemento ng array, at ang ikalimang cell ay naglalaman ng bilang na 10,000. Kung ano lang ang gusto namin.



2. Pag-alis ng elemento mula sa isang listahan

Ang pag-alis ng isang elemento mula sa isang listahan ay katulad ng pagpasok nito, ngunit ang proseso ay nababaligtad.

Alisin natin ang ika-3 elemento sa isang listahan. Upang gawin ito, kailangan nating isagawa ang:

list.remove(3);

Narito kung ano ang mangyayari sa remove() na paraan:

Hakbang 1: Ang mga elemento ng array, simula sa ika-4 na posisyon, ay ililipat (kokopyahin) ng 1 elemento patungo sa simula ng array:

Pag-alis ng elemento mula sa isang listahan

Hakbang 2: Ang halaga ng sizevariable ay bababa ng 1.

Pag-alis ng elemento mula sa isang listahan 2

Pakitandaan na may ilang value na may kulay na grey sa dulo ng array. Sa teknikal, ito ay mga basura. Kailangang tanggalin ang mga ito upang hindi makagambala sa pagkolekta ng basura .

Hakbang 3: Paglilinis ng basura

Pag-alis ng elemento mula sa isang listahan 3



3. Mga praktikal na halimbawa ng pagtatrabaho sa isang listahan sa Java

Sumulat tayo ng ilang halimbawa ng pagtatrabaho sa mga listahan:

Ililista namin ang lahat ng even na numero sa hanay mula 1 hanggang 20:

Code Mga Tala
ArrayList<Integer> list = new ArrayList<Integer>();

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

I-loop ang lahat ng mga indeks 1sa 20
Kung ang index ay mahahati ng 2walang natitira,
idagdag ito sa listahan

Ngayon ipakita natin ang lahat ng mga elemento ng listahan sa screen:

Code Mga Tala
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));
Gumawa ng list object
I-loop ang lahat ng mga indeks 1sa 20

Kung ang numero ay mahahati ng 2walang natitira,
idagdag ito sa listahan

I-loop mula sa zero hanggang sa laki ng listahan
Ipakita ang bawat elemento sa screen

Pag-alis ng mga elemento:

Ngayon, tanggalin natin ang lahat ng elemento na nahahati sa 4. Tandaan na pagkatapos alisin ang isang elemento mula sa listahan, agad na nagbabago ang mga posisyon ng natitirang mga elemento.

Code Mga Tala
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--;
   }
Lumikha ng isang list object

Loop sa lahat ng mga indeks 1sa 20
Kung ang index ay nahahati ng 2walang natitira,
idagdag ito sa listahan

Loop mula sa zero hanggang sa laki ng listahan
Kung ang isang elemento ng listahan ay nahahati ng 4walang natitira:

a) alisin ang elemento
b) bawasan ang icounter upang makuha namin ang parehong index sa susunod na pag-ulit ng loop

Sabihin nating kailangan mong alisin ang huling 3 elemento mula sa isang listahan.

Narito kung paano gawin iyon nang hindi tama:

Code Mga Tala
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);
Lumikha ng isang bagay sa listahan

Ang listahan ay may 10 elemento: 2, 4, 6, ... 20



n = 10
n - 3 = 7(mayroong 9 na elemento ang natitira sa listahan)
n - 2 = 8(mayroong 8 elemento ang natitira sa listahan)
n - 1 = 9(mayroong 7 elemento ang natitira sa listahan)

Pagkatapos alisin ang ika-7 at ika-8 elemento, 8 elemento lang ang mananatili sa listahan. Nangangahulugan iyon na hindi posibleng tanggalin ang ika-9 na elemento — magkakaroon ng error sa programa.

Narito ang tamang paraan upang alisin ang mga elemento:

Opsyon 1 Opsyon 2
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);

Kailangang alisin ang mga elemento mula sa dulo o mula sa isa pang pare-parehong lokasyon, dahil ang mga elemento ay naililipat ng isa pagkatapos ng bawat operasyon ng pag-alis.