Anotasyon

Java ArrayList Iterator ve Arama İşlemleri

Merhaba arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslerimize, Java Nesne Yönelimli Programlama Dersleri serisi altında ArrayList Nedir dersinden eksik kalan konuları Java ArrayList Iterator ve Arama İşlemleri dersi ile devam edeceğiz.

Java ArrayList Iterator ve Arama İşlemleri

Java ArrayList Iterator Yapısı

Iterator tekrarlayıcı anlamına gelmektedir. Listemizdeki elemanlara ulaşabilmek , değiştirebilmek ve silebilmek için iterator kullanırız.

Bu başlık altında yapacağımız örnekte aşağıda yer alan maddelerin nasıl kullanıldığını görmüş olacağız.

  1. Java 8 forEach ve lambda expression,
  2. iterator(),
  3. iterator() ve Java 8 forEachRemaining() metot,
  4. listIterator(),
  5. index for döngüsü.

Ayrıca ;

  1. next(),
  2. previous(),
  3. hasNext(),
  4. hasPrevious(), nasıl kullanıldıklarını da  örnekte görmüş olacağız.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class IterateOverArrayListExample {
    public static void main(String[] args) {
        List<String> tvShows = new ArrayList<>();
        tvShows.add("How I Met Your Mother");
        tvShows.add("IT Crowd");
        tvShows.add("Friends");
        tvShows.add("Lucifer");

        System.out.println(" Iterate using Java 8 forEach and lambda");
        tvShows.forEach(tvShow -> {
            System.out.println(tvShow);
        });

        System.out.println("\n Iterate using an iterator()");
        Iterator<String> tvShowIterator = tvShows.iterator();
        while (tvShowIterator.hasNext()) {
            String tvShow = tvShowIterator.next();
            System.out.println(tvShow);
        }

        System.out.println("\n Iterate using an iterator() and Java 8 forEachRemaining() method");
        tvShowIterator = tvShows.iterator();
        tvShowIterator.forEachRemaining(tvShow -> {
            System.out.println(tvShow);
        });

        System.out.println("\n Iterate using a listIterator() to traverse in both directions");
        // Here, we start from the end of the list and traverse backwards.
        ListIterator<String> tvShowListIterator = tvShows.listIterator(tvShows.size());
        while (tvShowListIterator.hasPrevious()) {
            String tvShow = tvShowListIterator.previous();
            System.out.println(tvShow);
        }

        System.out.println("\n Iterate using simple for-each loop");
        for(String tvShow: tvShows) {
            System.out.println(tvShow);
        }

        System.out.println("\n Iterate using for loop with index");
        for(int i = 0; i < tvShows.size(); i++) {
            System.out.println(tvShows.get(i));
        }
    }
}
Output:

Iterate using Java 8 forEach and lambda
How I Met Your Mother
IT Crowd
Friends
Lucifer

 Iterate using an iterator()
How I Met Your Mother
IT Crowd
Friends
Lucifer

 Iterate using an iterator() and Java 8 forEachRemaining() method
How I Met Your Mother
IT Crowd
Friends
Lucifer

 Iterate using a listIterator() to traverse in both directions
Lucifer
Friends
IT Crowd
How I Met Your Mother

 Iterate using simple for-each loop
How I Met Your Mother
IT Crowd
Friends
Lucifer

 Iterate using for loop with index
How I Met Your Mother
IT Crowd
Friends
Lucifer

Yukarıda ki örnekte hem iterator hemde listIterator yapısını gördük. Bunların arasında ki temel fark, ListIterator hem ileri hemde gerideki elemanlara doğru hareket edebilir fakat iterator sadece ileriye doğru hareket edebilmektedir. Aynı zamanda iterator da ekleme işlemi bulunmamaktadır.

Burada kullanabileceğimiz metotlardan da farklarını görebilirsiniz,

Iterator:

  • hasNext()
  • next()
  • remove()

 ListIterator:

  • add(E e)
  • hasNext()
  • hasPrevious()
  • next()
  • nextIndex()
  • previous()
  • previousIndex()
  • remove()
  • set(E e)

Arasındaki farkları ile ilgili daha fazla bilgi edinmek isterseniz buradan bakabilirsiniz.

Java ArrayList Arama İşlemleri

Bu başlık altında yapacağımız örnekte aşağıda yer alan maddelerin nasıl kullanıldığını görmüş olacağız.

  1. Bir ArrayList’in belirli bir eleman içerip içermediğini kontrolü – contains()
  2. Bir ArrayList’deki bir elemanın sırasını bulma – index() / lastIndexOf ()
import java.util.ArrayList;
import java.util.List;

public class SearchElementsInArrayListExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Java");
        names.add("Python");
        names.add("Swift");
        names.add("C");
        names.add("Go");
        names.add("C#");

        // Check if an ArrayList contains a given element
        System.out.println("Does names array contain \"C\"? : " + names.contains("C"));

        // Find the index of the first occurrence of an element in an ArrayList
        System.out.println("indexOf \"Java\": " + names.indexOf("Java"));
        System.out.println("indexOf \"C\": " + names.indexOf("C#"));

        // Find the index of the last occurrence of an element in an ArrayList
        System.out.println("lastIndexOf \"Python\" : " + names.lastIndexOf("Python"));
        System.out.println("lastIndexOf \"C#\" : " + names.lastIndexOf("C#"));
    }
}
Output:

Does names array contain "C"? : true
indexOf "Java": 0
indexOf "C": 5
lastIndexOf "Python" : 1
lastIndexOf "C#" : 5

Bir başka örnekte ise ;

User isimli bir class oluşturalım. Burada Kullanıcının isim ve yaşını tutacak değişkenlerimizi ve get-set methodlarımızı oluşturalım.

import java.util.ArrayList;
import java.util.List;

class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

Main classımızı oluşturup kullanıcılarımızı bir listede tutup bunları listeleyelim.

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {

        List<User> users = new ArrayList<>();
        users.add(new User("Ayşe", 18));
        users.add(new User("Ali", 34));
        users.add(new User("Aybüke", 24));

        users.forEach(user -> {
            System.out.println("Name : " + user.getName() + ", Age : " + user.getAge());
        });
    }
}
Output:
Name : Ayşe, Age : 18
Name : Ali, Age : 34
Name : Aybüke, Age : 24

Java ArrayList Sıralama İşlemleri

Bu başlık altında yapacağımız örnekte aşağıda yer alan maddelerin nasıl kullanıldığını görmüş olacağız.

  1. Collections.sort () yöntemini kullanarak ArrayList’i Sıralama
  2. ArrayList.sort () yöntemini kullanarak bir ArrayList’i Sıralama

1. Collections.sort()

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayListCollectionsSortExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(15);
        numbers.add(7);
        numbers.add(22);
        numbers.add(5);
        numbers.add(2);

        System.out.println("Before : " + numbers);

        // Sorting an ArrayList using Collections.sort() method
        Collections.sort(numbers);

        System.out.println("After : " + numbers);
    }
}
Output:

Before : [15, 7, 22, 5, 2]
After : [2, 5, 7, 15, 22]

2. ArrayList.sort()

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class ArrayListSortExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Lina");
        names.add("Jale");
        names.add("Mehmet");
        names.add("Deniz");

        System.out.println("Names : " + names);

        // Sort an ArrayList using its sort() method. You must pass a Comparator to the ArrayList.sort() method.
        names.sort(new Comparator<String>() {
            @Override
            public int compare(String name1, String name2) {
                return name1.compareTo(name2);
            }
        });

        // The above `sort()` method call can also be written simply using lambda expression
        names.sort((name1, name2) -> name1.compareTo(name2));

        // Following is an even more concise solution
        names.sort(Comparator.naturalOrder());

        System.out.println("Sorted Names : " + names);
    }
}
Output:

Names : [Lina, Jale, Mehmet, Deniz]
Sorted Names : [Deniz, Jale, Lina, Mehmet]

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Java Dersleri için tıklayınız..

Kaynaklar :

  1. https://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/dataStructures/Collections/ClassArrayList01.pdf
  2. https://medium.com/@denizf.b/java-collections-arraylist-nedir-7519bc1b7654
  3. https://medium.com/gokhanyavas/javada-generics-43546e77bd8f
  4. https://www.geeksforgeeks.org/arraylist-in-java/
  5. https://beginnersbook.com/2013/12/java-arraylist/
  6. https://www.programiz.com/java-programming/arraylist

Ayrıca örnekleri https://onecompiler.com/ adresinden deneyebilirsiniz.

 

 

94

Sevde Aybüke Kaleli

DevOps Engineer at Evam, M.Sc.

5 Yorum

  • cevap verecekmisiniz bilmiyorum ama eclipse 32 bite nasıl indiriyoruz ben x86x64 yazıyodu indirdim ama windows hata verdi bu sürüm hatalı diye.

    • 32 bit indirmek istiyorsanız x86 indirmeniz gerekmektedir. hatayı arattığınızda bir şeyler bulabildiniz mi ? ne hatası aldınız ?

  • Selam ben igrahiga. Bu java dersleri inanin cok isime yaradi. Ve artik java ile oyun yapim dersleri eklersenizde mutlu oluruz. Yani resim ekleme. Animasyon hareket kullanmak. Karakter hareket ettirmek ve buna benzer seyleri ders olarak yayinlarsaniz mutlu oluruz. Cunku kos koca internette bile pek fazla detayli bilgi yok (inglizce kaynaklar icinde gecerli)

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?