Java Collections sınıfı, bir dizi statik metoda sahiptir ve bu metodlar, çeşitli koleksiyon işlemleri gerçekleştirmek için kullanılır. Her bir metod için basit kod örnekleri aşağıda verilmiştir:
sort(List<T> list): Liste öğelerini doğal sırasına göre sıralar.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
Collections.sort(list);
System.out.println(list); // [1, 1, 3, 4, 5, 9]
shuffle(List<?> list): Listeyi rastgele sıraya sokar.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
Collections.shuffle(list);
System.out.println(list); // [9, 1, 5, 3, 1, 4] (örnek çıktı, her seferinde değişebilir)
reverse(List<?> list): Listeyi tersine çevirir.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
Collections.reverse(list);
System.out.println(list); // [9, 5, 1, 4, 1, 3]
fill(List<? super T> list, T obj): Listeyi belirli bir öğe ile doldurur.
java
Copy code
List<Integer> list = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9));
Collections.fill(list, 0);
System.out.println(list); // [0, 0, 0, 0, 0, 0]
copy(List<? super T> dest, List<? extends T> src): Bir kaynaktan bir hedefe koleksiyon kopyalar.
java
Copy code
List<Integer> src = Arrays.asList(3, 1, 4, 1, 5, 9);
List<Integer> dest = Arrays.asList(new Integer[src.size()]);
Collections.copy(dest, src);
System.out.println(dest); // [3, 1, 4, 1, 5, 9]
min(Collection<? extends T> coll): Koleksiyondaki en küçük öğeyi döndürür.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
Integer min = Collections.min(list);
System.out.println(min); // 1
max(Collection<? extends T> coll): Koleksiyondaki en büyük öğeyi döndürür.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
Integer max = Collections.max(list);
System.out.println(max); // 9
frequency(Collection<?> c, Object o): Belirli bir öğenin koleksiyondaki frekansını döndürür.
java
Copy code
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9);
int freq = Collections.frequency(list, 1);
System.out.println(freq); // 2
binarySearch(List<? extends Comparable<? super T>> list, T key): Listede belirli bir anahtarın ikili aramasını gerçekleştirir.
java
Copy code
List<Integer> list = Arrays.asList(1, 3, 4, 5, 9);
int index = Collections.binarySearch(list, 4);
System.out.println(index); // 2
replaceAll(List<T> list, T oldVal, T newVal): Listedeki tüm eski değerleri yeni değerle değiştirir.
java
Copy code
List<Integer> list = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9));
Collections.replaceAll(list, 1, 2);
System.out.println(list); // [3, 2, 4, 2, 5, 9]
rotate(List<?> list, int distance): Listeyi belirli bir mesafe kadar döndürür.
java
Copy code
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
Collections.rotate(list, 2);
System.out.println(list); // [4, 5, 1, 2, 3]
swap(List<?> list, int i, int j): Listede iki öğenin yerini değiştirir.
java
Copy code
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Collections.swap(list, 1, 3); // 2. ve 4. öğelerin yerini değiştirir
System.out.println(list); // [1, 4, 3, 2, 5]
indexOfSubList(List<?> source, List<?> target): Kaynak listede hedef listenin ilk oluşumunun başlangıç indeksini döndürür.
java
Copy code
List<Integer> source = Arrays.asList(1, 2, 3, 4, 5, 3, 4);
List<Integer> target = Arrays.asList(3, 4);
int index = Collections.indexOfSubList(source, target);
System.out.println(index); // 2
lastIndexOfSubList(List<?> source, List<?> target): Kaynak listede hedef listenin son oluşumunun başlangıç indeksini döndürür.
java
Copy code
List<Integer> source = Arrays.asList(1, 2, 3, 4, 5, 3, 4);
List<Integer> target = Arrays.asList(3, 4);
int index = Collections.lastIndexOfSubList(source, target);
System.out.println(index); // 5
unmodifiableCollection(Collection<? extends T> c): Değiştirilemeyen bir koleksiyon görünümü döndürür.
java
Copy code
Collection<String> c = Arrays.asList("one", "two", "three");
Collection<String> unmodifiableCollection = Collections.unmodifiableCollection(c);
System.out.println(unmodifiableCollection); // [one, two, three]
// unmodifiableCollection.add("four"); // Bu satır bir UnsupportedOperationException fırlatır
synchronizedCollection(Collection<T> c): Eşzamanlı olarak erişilebilen bir koleksiyon döndürür.
java
Copy code
Collection<String> c = new ArrayList<>();
Collection<String> syncCollection = Collections.synchronizedCollection(c);
syncCollection.add("one");
syncCollection.add("two");
System.out.println(syncCollection); // [one, two]
emptyList(): Boş bir liste döndürür.
java
Copy code
List<Object> emptyList = Collections.emptyList();
System.out.println(emptyList); // []
singletonList(T o): Yalnızca bir öğe içeren bir liste döndürür.
java
Copy code
List<String> singletonList = Collections.singletonList("single");
System.out.println(singletonList); // [single]
emptySet(): Boş bir set döndürür.
java
Copy code
Set<Object> emptySet = Collections.emptySet();
System.out.println(emptySet); // []
singleton(T o): Yalnızca bir öğe içeren bir set döndürür.
java
Copy code
Set<String> singleton = Collections.singleton("single");
System.out.println(singleton); // [single]
emptyMap(): Boş bir map döndürür.
java
Copy code
Map<Object, Object> emptyMap = Collections.emptyMap();
System.out.println(emptyMap); // {}
singletonMap(K key, V value): Tek bir anahtar/değer çifti içeren bir map döndürür.
java
Copy code
Map<String, Integer> singletonMap = Collections.singletonMap("key", 1);
System.out.println(singletonMap); // {key=1}
nCopies(int n, T o): Belirli bir nesnenin n kopyasını içeren bir liste döndürür.
java
Copy code
List<String> nCopies = Collections.nCopies(3, "copy");
System.out.println(nCopies); // [copy, copy, copy]
enumeration(Collection<T> c): Koleksiyondan bir Enumeration döndürür.
java
Copy code
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Enumeration<Integer> enumeration = Collections.enumeration(list);
while (enumeration.hasMoreElements()) {
System.out.println(enumeration.nextElement());
}
// 1
// 2
// 3
// 4
// 5
list(Enumeration<T> e): Enumeration'dan bir liste döndürür.
java
Copy code
Vector<Integer> vector = new Vector<>(Arrays.asList(1, 2, 3, 4, 5));
Enumeration<Integer> enumeration = vector.elements();
List<Integer> list = Collections.list(enumeration);
System.out.println(list); // [1, 2, 3, 4, 5]
addAll(Collection<? super T> c, T... elements): Belirli öğeleri bir koleksiyona ekler.
java
Copy code
List<Integer> list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);
System.out.println(list); // [1, 2, 3, 4, 5]
disjoint(Collection<?> c1, Collection<?> c2): İki koleksiyonun ortak öğelerinin olup olmadığını kontrol eder. Eğer hiç ortak öğeleri yoksa true döner.
java
Copy code
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
boolean isDisjoint = Collections.disjoint(list1, list2);
System.out.println(isDisjoint); // true
checkedCollection(Collection<E> c, Class<E> type): Tip-güvenli bir koleksiyon döndürür.
java
Copy code
List rawList = new ArrayList();
List<String> checkedList = Collections.checkedList(rawList, String.class);
rawList.add("string"); // Doğru kullanım
// rawList.add(1); // Yanlış kullanım, runtime'da ClassCastException fırlatır
System.out.println(checkedList); // [string]
checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType): Anahtar ve değer tiplerine göre tip-güvenli bir map döndürür.
java
Copy code
Map rawMap = new HashMap();
Map<String, Integer> checkedMap = Collections.checkedMap(rawMap, String.class, Integer.class);
rawMap.put("key", 1); // Doğru kullanım
// rawMap.put("key", "value"); // Yanlış kullanım, runtime'da ClassCastException fırlatır
System.out.println(checkedMap); // {key=1}
checkedSet(Set<E> s, Class<E> type): Tip-güvenli bir set döndürür.
java
Copy code
Set rawSet = new HashSet();
Set<String> checkedSet = Collections.checkedSet(rawSet, String.class);
rawSet.add("element"); // Doğru kullanım
// rawSet.add(1); // Yanlış kullanım, runtime'da ClassCastException fırlatır
System.out.println(checkedSet); // [element]
checkedList(List<E> list, Class<E> type): Tip-güvenli bir liste döndürür.
java
Copy code
List rawList = new ArrayList();
List<String> checkedList = Collections.checkedList(rawList, String.class);
rawList.add("string"); // Doğru kullanım
// rawList.add(1); // Yanlış kullanım, runtime'da ClassCastException fırlatır
System.out.println(checkedList); // [string]
synchronizedMap(Map<K,V> m): Eşzamanlı olarak erişilebilen bir map döndürür.
java
Copy code
Map<String, Integer> map = new HashMap<>();
Map<String, Integer> syncMap = Collections.synchronizedMap(map);
syncMap.put("one", 1);
syncMap.put("two", 2);
System.out.println(syncMap); // {one=1, two=2}
synchronizedSet(Set<T> s): Eşzamanlı olarak erişilebilen bir set döndürür.
java
Copy code
Set<String> set = new HashSet<>();
Set<String> syncSet = Collections.synchronizedSet(set);
syncSet.add("one");
syncSet.add("two");
System.out.println(syncSet); // [one, two] (Sıralama değişebilir)
synchronizedList(List<T> list): Eşzamanlı olarak erişilebilen bir liste döndürür.
java
Copy code
List<String> list = new ArrayList<>();
List<String> syncList = Collections.synchronizedList(list);
syncList.add("one");
syncList.add("two");
System.out.println(syncList); // [one, two]
unmodifiableMap(Map<? extends K, ? extends V> m): Değiştirilemeyen bir map görünümü döndürür.
java
Copy code
Map<String, Integer> map = new HashMap<>();
map.put("one", 1);
Map<String, Integer> unmodifiableMap = Collections.unmodifiableMap(map);
System.out.println(unmodifiableMap); // {one=1}
// unmodifiableMap.put("two", 2); // Bu satır bir UnsupportedOperationException fırlatır
unmodifiableSet(Set<? extends T> s): Değiştirilemeyen bir set görünümü döndürür.
java
Copy code
Set<String> set = new HashSet<>(Arrays.asList("one", "two", "three"));
Set<String> unmodifiableSet = Collections.unmodifiableSet(set);
System.out.println(unmodifiableSet); // [one, two, three]
// unmodifiableSet.add("four"); // Bu satır bir UnsupportedOperationException fırlatır
unmodifiableList(List<? extends T> list): Değiştirilemeyen bir liste görünümü döndürür.
java
Copy code
List<String> list = new ArrayList<>(Arrays.asList("one", "two", "three"));
List<String> unmodifiableList = Collections.unmodifiableList(list);
System.out.println(unmodifiableList); // [one, two, three]
// unmodifiableList.add("four");
// Bu satır bir UnsupportedOperationException fırlatır
```
Java Collections Framework'ün sağladığı işlevler geniş bir yelpazeye yayılır. İşte bazı ek fonksiyonlar ve kullanım örnekleri:
synchronizedSortedSet(SortedSet<T> s): Eşzamanlı olarak erişilebilen bir sıralı set döndürür.
java
Copy code
SortedSet<String> sortedSet = new TreeSet<>();
sortedSet.add("one");
sortedSet.add("two");
SortedSet<String> syncSortedSet = Collections.synchronizedSortedSet(sortedSet);
System.out.println(syncSortedSet); // [one, two]
synchronizedSortedMap(SortedMap<K,V> m): Eşzamanlı olarak erişilebilen bir sıralı map döndürür.
java
Copy code
SortedMap<String, Integer> sortedMap = new TreeMap<>();
sortedMap.put("one", 1);
sortedMap.put("two", 2);
SortedMap<String, Integer> syncSortedMap = Collections.synchronizedSortedMap(sortedMap);
System.out.println(syncSortedMap); // {one=1, two=2}
unmodifiableSortedSet(SortedSet<T> s): Değiştirilemeyen bir sıralı set görünümü döndürür.
java
Copy code
SortedSet<String> sortedSet = new TreeSet<>(Arrays.asList("one", "two", "three"));
SortedSet<String> unmodifiableSortedSet = Collections.unmodifiableSortedSet(sortedSet);
System.out.println(unmodifiableSortedSet); // [one, two, three]
// unmodifiableSortedSet.add("four"); // Bu satır bir UnsupportedOperationException fırlatır
unmodifiableSortedMap(SortedMap<K,V> m): Değiştirilemeyen bir sıralı map görünümü döndürür.
java
Copy code
SortedMap<String, Integer> sortedMap = new TreeMap<>();
sortedMap.put("one", 1);
sortedMap.put("two", 2);
SortedMap<String, Integer> unmodifiableSortedMap = Collections.unmodifiableSortedMap(sortedMap);
System.out.println(unmodifiableSortedMap); // {one=1, two=2}
// unmodifiableSortedMap.put("three", 3); // Bu satır bir UnsupportedOperationException fırlatır
Bu örnekler, Java Collections sınıfının sağladığı işlevselliklerin yalnızca bir kısmını temsil eder. Bu fonksiyonlar, veri koleksiyonlarınızı daha güvenli, esnek ve verimli bir şekilde işlemenize yardımcı olabilir. Her birinin farklı senaryolarda nasıl kullanılacağını öğrenmek, Java'da daha etkili programlama yapmanıza olanak tanır.