Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12-Lekciya

.pdf
Скачиваний:
0
Добавлен:
28.11.2023
Размер:
410.32 Кб
Скачать

Javada dinamikalıq massivler. ArrayList hám LinkedList

Joba:

1.List;

2.ArrayList;

3.LinkedList;

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Javada maǵlıwmatlardı waqtınsha saqlaw ushın massivlerden paydalanıw múmkin. Biraq olardan paydalanıw hárdayim qolaylı bola bermeydi. Sebebi, massivler fiksirlengen uzınlıqqa (ózgermeytuǵın) iye boladı. Bunnan tısqarı bazı bir algoritmler hám maǵlıwmatlar strukturaların realizaciya qılıwshı interfeyslerden paydalanıwǵa tuwra keledi (Interfeys haqqında Obyektke baǵdarlanǵan programmalastırıw bóliminde tanısasız).

Biz interfeyslerdi realizaciya qılıwshı dizimler (List), ArrayList hám LinkedList penen tanısıp shıǵamız.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

List interfeysi

Ápiwayı dizimlerdi jaratıw ushın List interfeysinen paydalanıwǵa boladı hám onıń eń kóp paydalanılatuǵın metodlarına tómendegiler kiredi:

void add(int index, E obj): obyektti dizimge index indeksi arqalı qosadı

boolean addAll(int index, Collection<? extends E> col): dizimge index indeksi arqalı col kollekciyasınıń barlıq elementlerin qosadı. Eger qosıwda dizim ózgergen bolsa true, keri jaǵdayda false mánisin qaytaradı

E get(int index): dizimdegi index indeksli obyektti qaytaradı

int indexOf(Object obj): dizimdegi birinshi ushıraǵan obj obyektiniń indeksin qaytaradı. Eger obyekt tabılmasa -1 mánisin qayataradı

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

List interfeysi

int lastIndexOf(Object obj): dizimdegi aqırǵı ushıraǵan obj obyektiniń indeksin qaytaradı. Eger obyekt tabılmasa -1 mánisin qayataradı

E remove(int index): Dizimdegi index indeksli obeyktti óshiredi hám sol óshirgen obyektti qayataradı

E set(int index, E obj): index indeksli obj obyektine mánis beredi

void sort(Comparator<? super E> comp): comp komparatorı arqalı dizimdi sortirovka qıladı

List<E> subList(int start, int end): dizimdegi start hám end indeksleri arasındaǵı elementler jıyındısın aladı

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

ArrayList klası

Javada usı interfeysti realizaciya qılıwshı ArrayList klası bar. ArrayList klası ápiwayı

dizim hám massivtiń analogı bolıp, massivten parqı onıń uzınlıǵı fiksirlenbegen.

ArrayListtiń tómendegishe konstruktorları bar:

ArrayList(): bos dizimdi jaratadı

ArrayList(Collection <? extends E> col): col kollekciyasınıń barlıq elementleri

qosılatuǵın dizim jaratadı

ArrayList (int capacity): Dáslepki sıyımlıǵı capacity bolǵan dizim jaratadı

ArrayList sıyımlıǵı bul massiv ólshemi bolıp, ol obyektlerdi saqlaw ushın xızmet qıladı.

Elementlerdi qosıw waqtında yadtı qayta bólistiriw boladı, yaǵnıy tazadan massiv

jaratıw hám oǵan aldınǵı massiv elementlerin qosadı. Sonlıqtan, ArrayList ke dáslepki

sıyımlıǵın kórsetiw onıń aldın aladı hám ónimdarlıqtıń artıwına alıp keledi.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Klass ArrayList hám onıń metodlarınan paydalanıwdı tómendegi programma kodı arqalı tanısıp shıǵayıq:

import java.util.ArrayList; public class Program{

public static void main(String[] args) {

ArrayList<String> people = new ArrayList<String>(); // Dizimge birneshe elementlerdi qosiw people.add("Tom");

people.add("Alice");

people.add("Kate");

people.add("Sam");

people.add(1, "Bob"); // elementti 1 indekske kiritemiz System.out.println(people.get(1));// 2-obyektti alamiz people.set(1, "Robert"); // 2-obyekt ushin taza manis

System.out.printf("ArrayListte %d element bar\n", people.size());

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

for(String person : people){

System.out.println(person);

}

// Elementti tekseriw if(people.contains("Tom")){

System.out.println("ArrayListte Tom bar");

}

//Konkret elementti oshiriw people.remove("Robert");

//indeks arqali oshiriw people.remove(0);

Object[] peopleArray = people.toArray(); for(Object person : peopleArray){

System.out.println(person);

}

}

}

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

LinkedList klası

LinkedList klası bir-biri menen baylanısqan túrdegi maǵlıwmatlar sturkturasın ózinde sáwlelendiredi. Ol

List interfeysin realizaciya qıladı. Ol tómendegishe konstruktorlarǵa iye:

LinkedList(): bos dizim jaratadı

LinkedList(Collection<? extends E> col): col kollekciyasınıń barlıq elementleri qosılatuǵın dizim

jaratadı

LinkedListte Listtegi hám basqada birneshe metodlar bar:

addFirst() / offerFirst(): Elementti dizim basına qosadı

addLast() / offerLast(): Elementti dizim aqırına qosadı

removeFirst() / pollFirst(): Dizim basındaǵı elementti óshiredi

removeLast() / pollLast(): Dizim aqırındaǵı elementti óshiredi

getFirst() / peekFirst(): Birinshi elementti aladı

getLast() / peekLast(): Aqırgı elementti aladı

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

LinkedListten paydalanıwdı tómendegi programma kodları mısalında kórip shıǵayıq:

import java.util.LinkedList;

public class Program{

public static void main(String[] args) {

LinkedList<String> states = new LinkedList<String>();

// Dizimge birneshe elementlerdi qosiw states.add("Germany"); states.add("France");

states.addLast("Great Britain"); // Aqirgi oringa qosiw states.addFirst("Spain"); // Birinshi oringa qosiw states.add(1, "Italy"); // 1 indeksli elementke qosiw

System.out.printf("Listte %d element bar\n", states.size()); System.out.println(states.get(1));

states.set(1, "Portugal");

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

for(String state : states){ System.out.println(state);

}

// dizimde element bar ekenin tekseriw if(states.contains("Germany")){

System.out.println("Listte Germany bar");

}

states.remove("Germany");

states.removeFirst(); // birinshi elementti oshiriw states.removeLast(); // aqirgi elementti oshiriw

LinkedList<Person> people = new LinkedList<Person>(); people.add(new Person("Mike"));

people.addFirst(new Person("Tom")); people.addLast(new Person("Nick")); people.remove(1); // ekinshi elementti oshiriw

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Соседние файлы в предмете Программирование на Java