Javaда коллекциялар боюнча кайталануунун кандай жолдору бар?
sobes.tech AI
AIден жооп
Javaда коллекциялар боюнча кайталануунун бир нече жолдору бар:
-
Индексти колдонуу менен
forцикли (мисалы,ArrayList,LinkedListсыяктуу индекс аркылуу жетүүчү коллекциялар үчүн):
Индекс аркылуу жетүү эффективдүү болгон коллекциялар үчүн ылайыктуу.// ArrayList аркылуу кайталануу мисалы ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); for (int i = 0; i < list.size(); i++) { String element = list.get(i); System.out.println(element); } -
Кеңейтилинген
forцикли (Enhanced for loop / for-each loop):
Эң кеңири колдонулган жана ыңгайлуу жол.Iterableинтерфейсин ишке ашырган бардык коллекциялар үчүн ылайыктуу.// ArrayList аркылуу for-each менен кайталануу мисалы ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); for (String element : list) { System.out.println(element); } -
Iteratorколдонуу:
Жөнөкөй жана ийкемдүү жол, кайталануу учурунда элементтерди өчүрүүгө мүмкүндүк берет. Бардык коллекциялар үчүн ылайыктуу.// Iterator колдонуу менен кайталануу мисалы ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); // Элементтерди коопсуз өчүрүү // if (element.equals("B")) { // iterator.remove(); // } } -
ListIteratorколдонуу (тизмелер үчүн):
Listинтерфейсин ишке ашырган коллекциялар үчүн атайын iterator. Ал алдыга жана артка кыймылдаганга, ошондой эле элементтерди кошууга жана өзгөртүүгө мүмкүндүк берет.// ListIterator колдонуу менен кайталануу мисалы ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); ListIterator<String> listIterator = list.listIterator(); while (listIterator.hasNext()) { String element = listIterator.next(); System.out.println(element); } // Артка кайтуу мисалы while (listIterator.hasPrevious()) { String element = listIterator.previous(); System.out.println(element); } -
Streams API (Java 8ден баштап):
Функционалдык ыкма, lambda өрнөктөрүн колдонуу менен. Коллекциянын элементтери боюнча операцияларды (сүзгү, түрмөлөө жана башка) декларативдүү стилде жүргүзүүгө мүмкүндүк берет. Кайталануу " ички " түрдө жүргүзүлөт.// Streams API колдонуу менен кайталануу мисалы ArrayList<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.stream() .forEach(element -> System.out.println(element)); // Сүзгү жана түрмөлөө мисалы // list.stream() // .filter(element -> element.startsWith("A")) // .map(String::toLowerCase) // .forEach(System.out::println);
Туура ыкманы конкреттүү тапшырга, коллекциянын түрүнө жана аткаруу талаптарына жараша тандаңыз. Көпчүлүк учурларда кеңейтилинген for цикли эң ыңгайлуу. Эгер элементтерди кайталануу учурунда өчүрүү керек болсо, Iterator колдонуу сунушталат. Тизмелер үчүн, эки тараптуу кайталануу керек болсо, ListIterator ылайыктуу. Streams API күчтүү мүмкүнчүлүктөрдү сунуштайт маалыматтарды декларативдүү иштетүү үчүн.