JavaRush /Java blogi /Random-UZ /Kofe tanaffusi №144. Java-da massivni List (ArrayList) ga...

Kofe tanaffusi №144. Java-da massivni List (ArrayList) ga qanday aylantirish mumkin. Java-da qaramlik kiritish

Guruhda nashr etilgan

Java-da massivni List (ArrayList) ga qanday aylantirish mumkin

Manba: Rrtutors Bugun siz massivni Ro'yxatga (ArrayList) aylantirishning turli usullari bilan tanishasiz va ularning har biridagi kod misollarini ko'rib chiqasiz. Kofe tanaffusi №144.  Java-da massivni List (ArrayList) ga qanday aylantirish mumkin.  Java-da qaramlik kiritish - 1Massivlar sodda va ulardan foydalanish oson bo'lsa-da, ular qattiq o'lcham kabi ko'plab cheklovlarga ega. Bu boshida yangi element qo'shish va elementlarni qayta tartibga solishni qiyinlashtiradi. Collections Framework tufayli biz Ro'yxat, Set va Navbatni turli yo'llar bilan amalga oshirishimiz mumkin. Masalan, massivlarning universal va moslashuvchan ro'yxatidan foydalanish (ArrayList). Java-da massivni o'zgartirishda uchta usuldan foydalanishingiz mumkin. Bu usullarga quyidagilar kiradi:
  1. Oddiy yoki qo'pol kuch usuli.
  2. Arrays.asList() usuli .
  3. Collections.addAll() usuli .

Oddiy yoki qo'pol kuch usulidan foydalanish

Bu usulda bo'sh massivdan ro'yxat tuziladi va massivning har bir elementi unga birma-bir qo'shiladi. Usul quyidagi amallarni bajargandan so'ng ishlaydi:
  • Massivni oling.
  • Bo'sh ro'yxat yarating.
  • Massivdagi elementlarni aylanib o'ting.
  • Endi har bir elementni massivga qo'shing.
  • To'liq ro'yxatni qaytaring.
Ushbu misol mevalar qatorini mevalar ro'yxatiga aylantiradi:
import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class NaivemethodExample {

    public static <T> List<T> convertArrayToList(T array[])

    {

        List<T> list = new ArrayList<>();

        for (T t : array) {

            list.add(t);

        }

        return list;

    }

    public static void main(String args[])

    {

        String array[]

            = { "Mangoes", "Oranges", "berries" };

        System.out.println("Array: "

                           + Arrays.toString(array));

        List<String> list = convertArrayToList(array);

        System.out.println("List: " + list);

    }

}

Arrays.asList() usuli

Arrays.asList() usulidan foydalanib , massiv konstruktorga parametr sifatida List konstruktoriga uzatiladi. Bu erda massivni ro'yxatga aylantirish uchun siz quyidagi amallarni bajarishingiz kerak:
  • Massivni oling.
  • Roʻyxat konstruktorida massivni parametr sifatida oʻtkazish orqali roʻyxat yarating.
  • To'liq ro'yxatni qaytaring.
Mevalar massivini roʻyxatga aylantirish uchun Arrays.asList() usulidan foydalanishga misol:
package asList;

import java.util.Arrays;

import java.util.List;

public class asListExample {

    public static <T> List<T> convertArrayToList(T array[])

    {

        List<T> list = Arrays.asList(array);

        return list;

    }

    public static void main(String args[])

    {

        String array[]

            = { "Mangoes", "Oranges", "berries" };

        System.out.println("Array: "

                          + Arrays.toString(array));

        List<String> list = convertArrayToList(array);

        System.out.println("List: " + list);

    }

}

Collections.addAll() usuli

Ro'yxatlar Java-dagi Collection paketining bir qismi bo'lgani uchun siz Collections.addAll() usuli yordamida massivni ro'yxatga o'zgartirishingiz mumkin . Bu usul quyidagi amallarni bajarib, massivni roʻyxatga aylantiradi:
  • Biz massivni olamiz.
  • Bo'sh ro'yxat yarating.
  • Collections.addAll() usuli yordamida massivni ro'yxatga aylantiramiz .
  • Biz ro'yxatni qaytaramiz.
Misol:
import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class collectionsall {

    public static <T> List<T> convertArrayToList(T array[])

    {

        List<T> list = new ArrayList<>();

        Collections.addAll(list, array);

        return list;

    }



    public static void main(String args[])

    {

        String array[]

            = { "peas", "tomatoes", "water melons" };

        System.out.println("Array: "

                           + Arrays.toString(array));

        List<String> list = convertArrayToList(array);

        System.out.println("List: " + list);

    }

}
Xulosa:
Massiv: [no'xat, pomidor, tarvuz ] Ro'yxat: [no'xat, pomidor, tarvuz ]

Java-da qaramlik kiritish

Manba: O'rta Ushbu postda siz Java-da qaramlik in'ektsiyasi nima ekanligini, u qayerda ishlatilishini va ishlab chiquvchiga qanday foyda keltirishini bilib olasiz. Kofe tanaffusi №144.  Java-da massivni List (ArrayList) ga qanday aylantirish mumkin.  Java-da qaramlik kiritish - 2Dependency Injection (DI) - bu dasturiy ta'minot komponentiga tashqi qaramlikni ta'minlash jarayoni. Bog'liqlik in'ektsiyasi ob'ektlarni yaratish muammolarini ulardan foydalanishdan ajratishga qaratilgan. Amalga oshirish printsipi, berilgan xizmatdan foydalanmoqchi bo'lgan ob'ekt yoki funksiya uni qanday yaratishni bilishi shart emasligini nazarda tutadi. Buning o'rniga, qabul qiluvchi "mijoz" (ob'ekt yoki funktsiya) o'zi bilmagan tashqi koddan ("injektor") bog'liqliklarini oladi. Mana yaxshi misol. X klassi Y sinfining ba'zi funksiyalaridan foydalanganda, biz X sinf Y sinfiga bog'liqligini aytamiz. Bog'liqlik in'ektsiyasi sinfdan tashqarida bog'liq ob'ektlarni yaratishga imkon beradi va bu ob'ektlarni sinfga turli yo'llar bilan ochib beradi. Bunday holda, bog'liq ob'ektlarni yaratish va bog'lash ularga bog'liq bo'lgan sinfdan tashqariga ko'chiriladi. Bog'liqlik in'ektsiyasi namunasi uch turdagi sinflarni o'z ichiga oladi:
  1. Mijoz sinfiga xizmat ko'rsatadigan xizmat klassi.
  2. Client Class - xizmat ko'rsatish sinfiga bog'liq bo'lgan sinf.
  3. Injector Class - bu xizmat sinfi ob'ektini mijoz sinfiga kiritadigan sinf.

Bog'liqlik in'ektsiyasi turlari

Qaramlik in'ektsiyasining uch turi mavjud:
  1. Konstruktor in'ektsiyasi - Konstruktor in'ektsiyasi sodir bo'lganda, injektor mijoz sinfining konstruktori orqali xizmat (qaramlik) beradi.
  2. Setter Injection - Ushbu turdagi in'ektsiyada (shuningdek, mulk in'ektsiyasi sifatida ham tanilgan) injektor mijoz sinfining umumiy mulki orqali qaramlikni ochib beradi.
  3. Inyeksiya usuli - bu turdagi in'ektsiyada mijoz klassi bog'liqlikni ta'minlash uchun usul(lar)ni e'lon qiluvchi interfeysni amalga oshiradi. Injektor mijoz sinfiga bog'liqlikni ta'minlash uchun ushbu interfeysdan foydalanadi.

Qaramlik in'ektsiyasining afzalliklari

Bog'liqlik in'ektsiyasini amalga oshirish bizga quyidagi afzalliklarni beradi:
  • Kodni qayta ishlatish.
  • Refaktoring qulayligi.
  • Sinovning qulayligi.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION