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.
- Java 8
forEach
ve lambda expression, iterator()
,iterator()
ve Java 8 forEachRemaining() metot,listIterator()
,- index for döngüsü.
Ayrıca ;
- next(),
- previous(),
- hasNext(),
- 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.
- Bir ArrayList’in belirli bir eleman içerip içermediğini kontrolü – contains()
- 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.
- Collections.sort () yöntemini kullanarak ArrayList’i Sıralama
- 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 :
- https://www.baskent.edu.tr/~tkaracay/etudio/ders/prg/dataStructures/Collections/ClassArrayList01.pdf
- https://medium.com/@denizf.b/java-collections-arraylist-nedir-7519bc1b7654
- https://medium.com/gokhanyavas/javada-generics-43546e77bd8f
- https://www.geeksforgeeks.org/arraylist-in-java/
- https://beginnersbook.com/2013/12/java-arraylist/
- https://www.programiz.com/java-programming/arraylist
Ayrıca örnekleri https://onecompiler.com/ adresinden deneyebilirsiniz.
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 ?
teşekkürler işime yaradı
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)
thanks for sharing this