Java bir kund



Download 1,09 Mb.
bet9/24
Sana30.09.2022
Hajmi1,09 Mb.
#850991
1   ...   5   6   7   8   9   10   11   12   ...   24
Bog'liq
Java быстрый старт (1)

Massiv odatda bir-biri bilan qandaydir tarzda
bog'langan ma'lumotlar to'plamidir. Aytaylik, siz xohlaysiz
4.2. Massivlar 55
dasturda 5 foydalanuvchilar yoshi haqidagi ma'lumotlarni saqlash. Ularni user1Age, user2Age, user3Age, user4Age
va user5Age nomlari ostida saqlash o‘rniga ular bo‘lishi mumkin.
massivda saqlang.

Massiv o‘zgaruvchisi ikki usulda e’lon qilinishi mumkin. Birinchi versiyada u quyidagicha e'lon qilinadi:


int[] foydalanuvchi;

int turi o'zgaruvchini saqlashini bildiradi


int qiymatlari .

[] oÿzgaruvchining oddiy oÿzgaruvchi emas, balki massiv ekanligini koÿrsatadi.


userAge - massivning nomi.


Ikkinchi versiyada u quyidagicha e'lon qilinadi:


int userAge[];

C/C++ tilidan kelib chiqqan bu uslub Java tomonidan C/C++


dasturchilariga qulaylik yaratish maqsadida qabul qilingan. Shunga qaramasdan
bu sintaksis afzal deb hisoblanmaydi
javada. Kitobda biz birinchi uslubga yopishib olamiz.
Massiv o'zgaruvchisini e'lon qilgandan so'ng, siz massiv yaratishingiz va uni o'zgaruvchiga belgilashingiz kerak. Buning uchun yangi kalit so'z ishlatiladi :
int[] foydalanuvchi;
userAge = new int[] {21, 22, 23, 24, 25};

Birinchi buyruq userAge massiv o'zgaruvchisini e'lon


qiladi. Ikkinchi buyruq {21, 22, 23, 24, 25} massivni yaratadi. va uni userAge o'zgaruvchisiga tayinlaydi. userAge o'zgaruvchisiga hali massiv tayinlanmaganligi sababli,
56 4 -bob. Massivlar va satrlar

buyruq userAge ni yaratilgan massiv bilan ishga tushiradi. Massiv ishga tushirilgandan so'ng uning hajmini o'zgartirib bo'lmaydi. Bu holda userAge massivi faqat 5 ta qiymatni saqlash uchun ishlatilishi mumkin, chunki u 5 ta butun son bilan ishga tushirilgan. {21, 22, 23, 24, 25} - hozirda massivda saqlangan beshta butun son.

Ikkita buyruqda massivni e'lon qilish va ishga tushirishdan tashqari siz ikkita buyruqni birlashtira olasiz


qisqartirilgan sintaksis:

int[] userAge2 = new int[] {21, 22, 23, 24, 25};


Ushbu buyruqni yanada soddalashtirish mumkin:


int[] userAge2 = {21, 22, 23, 24, 25};

Boshqacha qilib aytganda, bir xil buyruqda massivni e'lon qilish va ishga tushirishda new int[] so'zlarini o'tkazib yuborish mumkin.


Massivni e'lon qilish va ishga tushirishning uchinchi usuli
shunday ko'rinadi:

int[] userAge3 = new int[5];


Buyruq userAge3 massivini e'lon qiladi va uni 5 ta butun sonli massiv bilan ishga tushiradi ( kvadrat qavs ichidagi 5 raqami [ ] bilan ko'rsatilgandek). Ushbu 5 ta raqam ko'rsatilmaganligi sababli, Java avtomatik ravishda massiv yaratadi, elementlarni standart qiymat bilan ishga tushiradi va uni userAge3 ga tayinlaydi. Butun sonlar uchun standart qiymat 0 ga teng.


Shuning uchun userAge3 o‘zgaruvchisi
{0, 0, 0, 0, 0} qiymatini o'z ichiga oladi .
Indeks bo'yicha kirish orqali alohida massiv elementlarining
qiymatlarini o'zgartirishingiz mumkin . Shuni yana bir bor eslatib o'taman
4.2. Massivlar 57
indekslar har doim 0 dan boshlanadi. Massivning birinchi elementi indeks 0, keyingi elementi indeks 1 va hokazo. Aytaylik userAge massivida hozirda {21, 22, 23, 24, 25} elementlar mavjud. Birinchisini yangilash uchun
massiv elementi, buyruqni bajaring
userAge[0] = 31;

Massiv {31, 22, 23, 24, 25} ga aylanadi .


Agar siz buyruqni kiritsangiz
userAge[2] = userAge[2] + 20;

massivda {31, 22, 43, 24, 25} elementlar bo‘ladi . Boshqacha qilib aytganda, uchinchi element 20 ga oshiriladi.





      1. MASSIV USULLARI

Massivlar, xuddi qatorlar kabi, tayyor usullar to'plamini o'z ichiga oladi.

Quyida muhokama qilingan usullar java.util.Arrays sinfida . Ulardan foydalanish uchun qo'shing


dastur buyrug'ida
import java.util.Arrays;

Buyruq kompilyatorga bularning kodi qaerdaligini aytadi usullari.


Import buyrug'i dasturda paketlar buyrug'idan keyin, lekin sinf deklaratsiyasidan oldin paydo bo'lishi kerak . Misol:
helloworld paketi; import java.util.Arrays;
umumiy sinf Salom dunyo {
// HelloWorld sinf kodi
}
58 4 -bob. Massivlar va satrlar

Ammo oldin, biz String sinfini ishlatganimizda, hech qanday import buyruqlari kiritilmagan! Buning sababi, String sinfi java.lang paketining bir qismi bo'lib , u barcha Java dasturlarida sukut bo'yicha import qilinadi.

Endi tez-tez ishlatiladigan ba'zilarini ko'rib chiqaylik


massiv usullari.

equals() - usul ikki massivning tengligini tekshiradi. Agar massivlar teng bo'lsa, usul rost, agar bo'lmasa, noto'g'ri qaytaradi. Ikki massiv teng deb hisoblanadi, agar ular


bir xil miqdordagi elementlarni o'z ichiga oladi va bu elementlar
politsiyachilar teng va bir xil tartibda ergashadilar.

Aytaylik, bizda quyidagi dastur fragmenti bor:


int[] arr1 = {0,2,4,6,8,10};
int[] arr2 = {0,2,4,6,8,10};
int[] arr3 = {10,8,6,4,2,0};

mantiqiy natija1 = Arrays.equals(arr1, arr2); mantiqiy natija2 = Arrays.equals(arr1, arr3);


Natija1 o'zgaruvchisi to'g'ri bo'ladi va natija2 o'zgaruvchisi noto'g'ri bo'ladi . Natija2 ning bu qiymati , chunki arr1 va arr3 bir xil elementlarni o'z ichiga olsa ham, bu elementlar teskari tartibda joylashgan. Shunga ko'ra, bu ikki massiv teng deb hisoblanmaydi.


E'tibor bering, ushbu misolda Massivlar so'zi usul nomidan oldin qo'shilgan. Gap shundaki, Arrays sinfining barcha usullari statikdir. Statik usulni chaqirish uchun uning oldiga sinf nomini qo'ying. Statik usullar 7-bobda batafsil yoritilgan.


4.2. Massivlar 59
copyOfRange() - metod bir massiv tarkibini boshqa massivga nusxalaydi. Chaqirilsa, u uchta oladi dalil.
Aytaylik, bizda quyidagi massiv bor:
int[] manba = {12, 1, 5, -2, 16, 14, 18, 20, 25};

Manba mazmuni quyidagi buyruq bilan yangi maqsadli massivga ko'chirilishi mumkin :


int[] dest = Arrays.copyOfRange(manba, 3, 7);

Birinchi argument (manba) nusxalanadigan qiymatlari


bo'lgan massivni belgilaydi . Ikkinchi va uchinchi dalillar birgalikda
kompilyatorga nusxa ko'chirish mos ravishda qaysi
indeksda boshlanishi va to'xtashi kerakligini ayting. Aks holda Boshqacha qilib aytganda, bizning misolimiz 3-indeksdan 6- inklyuziv indeksga elementlarni ko'chiradi (ya'ni, 7-indeksdagi element ko'chirilmaydi).
Elementlarni nusxalashdan so'ng copyOfRange() usuli nusxalangan raqamlar bilan massivni qaytaradi. Bu massiv maqsad uchun tayinlangan .
Shunday qilib, nusxa ko'chirishdan so'ng maqsadli
massivda {-2, 16, 14, 18} elementlar bo'ladi, manba massiv esa

o'zgarishsiz qoladi.


toString() usuli massiv elementlarini ifodalovchi String obyektini qaytaradi . Ushbu konvertatsiya massiv tarkibini chiqarishni soddalashtiradi. Aytaylik


massiv

int[] raqamlari = {1, 2, 3, 4, 5};


60 4 -bob. Massivlar va satrlar

Raqamlar tarkibini ko'rsatish uchun quyidagi buyruqdan foydalanish mumkin .
System.out.println(Masivlar.toString(raqamlar));

Buyruq qatorni chiqaradi


[1, 2, 3, 4, 5]

chiqish oynasida.


sort() - usul massivlarni saralash uchun mo'ljallangan. Argument sifatida massiv uzatiladi.


Aytaylik, bizda massiv bor


int[] raqamlar2 = {12, 1, 5, -2, 16, 14};
Massivni saralash uchun quyidagilarni bajaring
buyruq:
Massivlar.sort(raqamlar2);

Massiv o'sish tartibida tartiblanadi.


sort() usuli yangi massivni qaytarmaydi . Bu shunchaki qo'ng'iroqda o'tkazilgan massivni o'zgartiradi. Boshqacha qilib aytganda, u bizning misolimizdagi numbers2 massivini o'zgartiradi . Shundan so'ng siz buyruqni ishlatishingiz mumkin


System.out.println(Masivlar.toString(raqamlar2));

tartiblangan massivni chiqarish uchun. Buyruqlar bilan bog'liq muammolar


natija
[-2, 1, 5, 12, 14, 16]
binarySearch() - usul tartiblangan massivda ma'lum
bir qiymatni qidiradi . Ushbu usuldan foydalanish uchun,

    1. Massivlar 61

avval massivni tartiblashingiz kerak. Saralash uchun siz sort() usulidan foydalanishingiz mumkin,
yuqorida tavsiflangan.

Aytaylik, bizda quyidagi massiv bor:


int[] myInt = {21, 23, 34, 45, 56, 78, 99};
78 qiymati massada mavjudligini aniqlash uchun
sive, buyruqni bajaring
int foundIndex = Arrays.binarySearch(myInt, 78);
foundIndex qiymati 5 bo'ladi. Bu 78 raqami 5 indeksidagi massiv elementida ekanligini ko'rsatadi.

Boshqa tomondan, buyruqni bajarayotganda


int foundIndex2 = Arrays.binarySearch(myInt, 39);

foundIndex2 qiymati -4 bo'ladi .


Bu natija ikki qismdan iborat - "-" belgisi va 4 raqami.


"-" belgisi shunchaki 39 qiymati topilmaganligini anglatadi.

4 raqami bilan vaziyat yanada murakkab. Agar u massivda mavjud bo'lsa, berilgan raqam qayerda bo'lishini ko'rsatadi . Bunda indeks 1 ga ortadi.Boshqacha aytganda, agar massivda 39 soni mavjud bo lsa, u holda u 4-1=3 indeksli elementda bo lar edi.


Ushbu bo'lim ba'zi tez-tez ishlatiladigan massiv usullarini qamrab oldi. Barcha massiv usullarining toÿliq roÿyxati uchun https://docs-ga qarang.


oracle.com/javase/8/docs/api/java/util/Arrays.html.




62 4 -bob. Massivlar va satrlar

      1. MASSIV UZUNLIGINI ANIQLASH

Va nihoyat, keling, massiv uzunligini qanday aniqlash mumkinligini ko'rib chiqamiz . Massiv uzunligi massivdagi elementlar sonini bildiradi . Avvalroq, satrlarni muhokama qilganda, satrlar uzunligini aniqlash uchun length() usulidan foydalanish mumkinligini eslatib o'tdik .
G'alati, arrays uchun length() usuli qo'llab- quvvatlanmaydi . Uzunlik maydoni massiv uzunligini aniqlash uchun ishlatiladi . Biz maydonlar va usullarni 7-bobda ko‘rib chiqamiz. Hozircha massiv uzunligini
olish uchun uzunlikdan keyin qavs qo‘shish shart emasligini bilish
Masalan, massiv uchun

int[] userAge = {21, 22, 26, 32, 40};


userAge.length 5 ta, chunki massivda 5 ta raqam mavjud .





    1. PRIMITIV TURLAR VA REFERANS TURLARI

Massivlar va satrlar bilan tanishganingizdan so'ng, siz Java-da ma'lumotlar turlari bo'yicha bitta muhim tushunchaga o'tishingiz mumkin.
Java'dagi barcha ma'lumotlar turlari ibtidoiy va mos yozuvlar turlariga bo'linadi . Java tilida atigi 8 ta ibtidoiy tip
mavjud (bayt, qisqa, int, uzun, float, double, char va mantiqiy), qolganlari mos yozuvlar turlari. havola qilish
zikr qilingan o'z satrlari va massivlarini turlari

    1. Primitiv tiplar va mos yozuvlar turlari 63


ushbu bobda, shuningdek, 7 va 8-boblarda ko'rib chiqiladigan sinflar va interfeyslar.

Ibtidoiy va mos yozuvlar turlari o'rtasidagi asosiy farqlardan biri qaysi ma'lumotlarning saqlanganligi bilan bog'liq.


xotira turida.

Primitiv tip o'z ma'lumotlarini saqlaydi.


Biz yozganimizda


int myNumber = 5;

myNumber o'zgaruvchisi haqiqiy qiymatni saqlaydi 5.


Boshqa tomondan, mos yozuvlar turi o'z ma'lumotlarini saqlamaydi . Buning o'rniga, ma'lumotlarga havola saqlanadi.
Ma'lumotnoma kompilyatorga ma'lumotlarning qiymatini
bildirmaydi ; kompilyatorga ma'lumotlarni qaerdan topish mumkinligini aytadi .
Malumot turiga misol String. kabi buyruq berganingizda

String xabar = "Salom";


"Salom" qatori xabar o'zgaruvchisida saqlanmaydi .


Buning o'rniga "Salom" qatori yaratiladi va kompyuter xotirasining boshqa joyida saqlanadi. Xabar o'zgaruvchisida
ushbu xotira blokining manzili saqlanadi.
Hozircha mos yozuvlar turlari haqida bilish kerak bo'lgan narsa shu . Kitob yangi boshlanuvchilar uchun mo'ljallanganligi sababli , biz mos yozuvlar turlari nima uchun kerakligini
batafsil muhokama qilmaymiz . Faqat farqlardan xabardor bo'ling
ibtidoiy va mos yozuvlar turi o'rtasida; birinchi ma'badda qiymat, ikkinchisida esa - manzil.
64 4 -bob. Massivlar va satrlar


    1. Satrlar va o'zgarmaslik

Ushbu bo'limni yopishdan oldin , torlar bilan bog'liq yana bir tushunchani eslatib o'tmoqchiman . Ya'ni,
Java'da (va boshqa ko'plab tillarda) satrlar o'zgarmasdir.
O'zgarmaslik satr qiymatini o'zgartirib bo'lmasligini anglatadi. Har safar String o'zgaruvchisini yangilaganingizda, siz aslida yangi satr yaratasiz va uning manzilini String o'zgaruvchisiga xotirada
belgilaysiz. Bir misolni ko'rib chiqing. Aytaylik, bizda buyruq bor
String xabar = "Salom";

Yuqorida aytib o'tgan edimki, kompilyator "Salom" qatorini yaratadi va uni kompyuter xotirasida saqlaydi.


O'zgaruvchan xabar ushbu xotira blokining manzilini
saqlaydi . Agar biz hozir o'zgaruvchan xabarning qiymatini yangilasak
va unga "World" qatorini bering:
xabar = "dunyo";

kompilyator qiymatni "Dunyo" ga o'zgartirish uchun "Salom" qatori saqlanadigan xotira blokiga kirmaydi . Buning o'rniga u yangi "Dunyo" qatorini yaratadi va uni kompyuter xotirasida boshqa joyda saqlaydi. Yangi manzil xabarga tayinlangan . Boshqacha qilib aytganda, hozir xotirada ikkita satr mavjud: "Salom" va "Dunyo".


Xabarda "Jahon" manzili saqlanadi . Agar dasturda "Salom" qatori endi ishlatilmasa, u xotiraning ushbu maydonini bo'shatish uchun yo'q qilinadi. Bu axlat yig'ish deb ataladigan jarayon Java tomonidan avtomatik ravishda taqdim etiladi.
Machine Translated by Google
5

Download 1,09 Mb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   24




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish