Bu eğitimde, örnekler yardımıyla Java koleksiyonları çerçevesi tarafından sağlanan farklı algoritmalar hakkında bilgi edineceğiz.
Java koleksiyon çerçevesi, veri yapılarında depolanan öğeleri işlemek için kullanılabilen çeşitli algoritmalar sağlar.
Java'daki algoritmalar, koleksiyonlar üzerinde çeşitli işlemleri gerçekleştirmek için kullanılabilen statik yöntemlerdir.
Algoritmalar çeşitli koleksiyonlarda kullanılabildiğinden, bunlar aynı zamanda genel algoritmalar olarak da bilinir .
Koleksiyonlar çerçevesinde bulunan farklı yöntemlerin uygulanmasını görelim.
1. Sıralama kullanarak Sıralama ()
sort()
Koleksiyon çerçeve tarafından sağlanan usul sıralama elemanlarına kullanılır. Örneğin,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) )
Çıktı
Sıralanmamış DiziListesi: (4, 2, 3) Sıralanmış DiziListesi: (2, 3, 4)
Burada sıralama doğal sırayla (artan sıra) gerçekleşir. Ancak, sort()
Comparator arayüzünü kullanarak yöntemin sıralama düzenini özelleştirebiliriz .
Daha fazla bilgi edinmek için Java Sıralama sayfasını ziyaret edin.
2. Shuffle () kullanarak karıştırma
shuffle()
Java koleksiyonları çerçeve gibi bir yöntem veri yapısındaki sırası mevcut herhangi bir yok etmek için kullanılır. Sıralamanın tam tersini yapar. Örneğin,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("Sorted ArrayList: " + numbers); // Using the shuffle() method Collections.shuffle(numbers); System.out.println("ArrayList using shuffle: " + numbers); ) )
Çıktı
Sıralanmış ArrayList: (1, 2, 3) ArrayList kullanarak shuffle: (2, 1, 3)
Programı çalıştırdığımızda, shuffle()
yöntem rastgele bir çıktı döndürecektir.
Karıştırma algoritması çoğunlukla rastgele çıktı istediğimiz oyunlarda kullanılır.
3. Rutin Veri İşleme
Java'da koleksiyon çerçevesi, verileri işlemek için kullanılabilecek farklı yöntemler sağlar.
reverse()
- öğelerin sırasını tersine çevirirfill()
- bir koleksiyondaki her öğeyi belirtilen değerle değiştirincopy()
- belirtilen kaynaktan hedefe öğelerin bir kopyasını oluştururswap()
- bir koleksiyondaki iki öğenin konumunu değiştiriraddAll()
- bir koleksiyonun tüm öğelerini diğer koleksiyona ekler
Örneğin,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // Using reverse() Collections.reverse(numbers); System.out.println("Reversed ArrayList1: " + numbers); // Using swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 using swap(): " + numbers); ArrayList newNumbers = new ArrayList(); // Using addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 using addAll(): " + newNumbers); // Using fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 using fill(): " + numbers); // Using copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 using copy(): " + newNumbers); ) )
Çıktı
ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 swap kullanarak (): (1, 2) ArrayList2 addALl kullanarak (): (1, 2) ArrayList1 using (): (0, 0) ArrayList2 kopya (): (0, 0)
Not : copy()
Yöntemi uygularken her iki liste de aynı boyutta olmalıdır.
4. binarySearch () Kullanarak Arama
binarySearch()
Belirtilen öğe için Java koleksiyonları çerçeve aramaların yöntemi. Belirtilen koleksiyonlardaki öğenin konumunu döndürür. Örneğin,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("The position of 3 is " + pos); ) )
Çıktı
3'ün konumu 2'dir.
Not : Yöntem uygulanmadan önce koleksiyon sıralanmalıdır binarySearch()
.
Daha fazlasını öğrenmek için Java Binary Search sayfasını ziyaret edin.
5. Bileşim
frequency()
- koleksiyonda bir öğenin kaç kez bulunduğunu döndürürdisjoint()
- iki koleksiyonun bazı ortak öğeler içerip içermediğini kontrol eder
Örneğin,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList newNumbers = new ArrayList(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("Two lists are disjoint: " + value); ) )
Çıktı
DiziListesi1: (1, 2, 3, 2) 2: 2 Sayısı DiziListesi2: (5, 6) İki liste ayrık: doğru
6. Uç Değerleri Bulmak
min()
Ve max()
Java koleksiyonları çerçeve yöntemleri sırasıyla minimum ve maksimum unsurları bulmak için kullanılır. Örneğin,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using min() int min = Collections.min(numbers); System.out.println("Minimum Element: " + min); // Using max() int max = Collections.max(numbers); System.out.println("Maximum Element: " + max); ) )
Çıktı
Minimum Eleman: 1 Maksimum Eleman: 3