|
|
Collection'lar çok sayıda class ve interface, çok sayıda property ve method'dan oluşur. Burada bunlardan önemli ve sık kullanılanlara değinilecektir. Ancak collection'ların çalışma mantığı temelde birbirine çok beznediği için bu örneklerin kavranması diiğerlerinin de anlaşılmasını kolaylaştırır
ArrayList class'ı List tipi collection'ların en çok kullanılanıdır. Dizilere (ve Vector'e) benzediği için kullanımı da basittir.
ArrayListTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster |
1 import java.util.*; 2 public class ArrayListTest { 3 public static void main(String[] args){ 4 ArrayList list=new ArrayList(); 5 list.add("Ali"); 6 list.add("Veli"); 7 list.add("Zafer"); 8 System.out.println(list); 9 10 list.remove(0); 11 list.remove("Veli"); 12 System.out.println(list); 13 14 String element=(String)list.get(0); 15 System.out.println(element); 16 17 list.set(0,"Mehmet"); 18 System.out.println(list); 19 } 20 }
Bir collection içerisindeki elemanlara belli bir sırayla erişmek için Iterator'ler kullanılır. Elbette collection'ların içerisindeki elemanlara index veya key'le erişmek mümkündür. Ancak bu hepsinin index'inin ve key'inin bilinmesini gerekli kılar. List tipi Collection'lara sırayla erişmek için diziler için yapıldığı gibi bir döngü kurulabilir.
for(int i=0;i<list.size();i++){ String element=(String)list.get(i); System.out.println(element); }
Ancak iterator de kullanılabilir. Iterator, 'içerde eleman kaldığı sürece bir sonrakini ver' şeklinde çalışır.
Iterator iter=list.iterator(); while(iter.hasNext()){ String element=(String)iter.next(); System.out.println(element); }
Elemanların sonuna kadar iter.next() ile ilerlenir. Son eleman gelindiğinde hasNext() method'u 'false' döndürür ve döngü biter.
IteratorTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster |
1 import java.util.*; 2 public class IteratorTest { 3 public static void main(String[] args){ 4 ArrayList list=new ArrayList(); 5 list.add("Ali"); 6 list.add("Veli"); 7 list.add("Yusuf"); 8 System.out.println(list); 9 // 'Size' bilgisi ve 'for' döngüsüyle erişim 10 for(int i=0;i<list.size();i++){ 11 String element=(String)list.get(i); 12 System.out.println(element); 13 } 14 // 'Iterator' ve 'while' döngüsüyle erişim 15 Iterator iter=list.iterator(); 16 while(iter.hasNext()){ 17 String element=(String)iter.next(); 18 System.out.println(element); 19 } 20 21 } 22 }
Map interface'ini implement eden HashMap class elemanları içerisinde bir keyle saklar :
hm.put("ad","ahmet");
ve gerektiğinde bir anahtarla geri döndürür :
String ad=(String)hm.get("ad");
Map tipi collection'lar için for döngüsüyle erişim mümkün değildir. List'te 0'dan başlayıp eleman sayısına ulaşana kadar sırayla almak mümkün olabilir. Ancak Map'te hernagi bir index'teki (örneğin üçüncü) elemanının ne olduğu bilinemez. Map bir elemanı vermek için bir key ister. Ancak bir Map'in içindeki bütün key'leri bilmek her zaman mümkün değildir. Çünkü Map'i oluşturan kod'la map'in içindekileri kullanan kod farklı olabilir. Iterator burada tek çözümdür. HashMap kullanımına örnek bir uygulama :
HashMapTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster |
1 import java.util.*; 2 public class HashMapTest { 3 public static void main(String[] args){ 4 HashMap hm=new HashMap(); 5 hm.put("ad","ahmet"); 6 hm.put("soyad","telli"); 7 hm.put("tel","02126210214"); 8 9 System.out.println(hm); 10 11 String ad=(String)hm.get("ad"); 12 System.out.println(ad); 13 14 hm.put("ad","mehmet"); 15 System.out.println(hm); 16 17 hm.remove("tel"); 18 System.out.println(hm); 19 20 } 21 }
Collection'lar için Collections class'ı, diziler için de Arrays class'ı çok sayıda faydalı method içerir. Aşağıda Arrays için sort, search ve fill gibi methodlarının kullanımını gösteren örnek bulunmaktadır. Collection'ları için kuulanım paraleldir.
ArraysTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster |
1 import java.util.*; 2 public class ArraysTest { 3 public static void main(String[] args){ 4 int[] array={5,6,3,4,1,2}; 5 6 Arrays.sort(array); 7 for(int i=0;i<array.length;i++){ 8 System.out.println(array[i]); 9 } 10 int index=Arrays.binarySearch(array,6); 11 System.out.println(index); 12 13 Arrays.fill(array,0,3,0); 14 for(int i=0;i<array.length;i++){ 15 System.out.println(array[i]); 16 } 17 } 18 }
|
|