Dalam tutorial ini, kita akan belajar tentang berbagai algoritma yang disediakan oleh framework kumpulan Java dengan bantuan contoh.
Kerangka koleksi Java menyediakan berbagai algoritme yang dapat digunakan untuk memanipulasi elemen yang disimpan dalam struktur data.
Algoritma di Java adalah metode statis yang dapat digunakan untuk melakukan berbagai operasi pada koleksi.
Karena algoritme dapat digunakan pada berbagai koleksi, ini juga dikenal sebagai algoritme generik .
Mari kita lihat penerapan metode berbeda yang tersedia dalam kerangka koleksi.
1. Menyortir Menggunakan sort ()
The sort()
metode yang disediakan oleh kerangka koleksi digunakan untuk elemen semacam. Sebagai contoh,
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); ) )
Keluaran
Daftar Array yang Tidak Diurutkan: (4, 2, 3) Daftar Array yang Diurutkan: (2, 3, 4)
Di sini pengurutan terjadi dalam urutan alami (urutan naik). Namun, kami dapat menyesuaikan urutan sort()
metode menggunakan antarmuka Pembanding.
Untuk mempelajari lebih lanjut, kunjungi Penyortiran Java.
2. Mengacak Menggunakan acak ()
The shuffle()
metode koleksi kerangka Java digunakan untuk menghancurkan segala jenis urutan hadir dalam struktur data. Itu hanya kebalikan dari penyortiran. Sebagai contoh,
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); ) )
Keluaran
Sorted ArrayList: (1, 2, 3) ArrayList menggunakan shuffle: (2, 1, 3)
Saat kita menjalankan program, shuffle()
metode akan mengembalikan keluaran acak.
Algoritme pengacakan terutama digunakan dalam game di mana kami menginginkan keluaran acak.
3. Manipulasi Data Rutin
Di Java, framework koleksi menyediakan metode berbeda yang dapat digunakan untuk memanipulasi data.
reverse()
- membalik urutan elemenfill()
- ganti setiap elemen dalam koleksi dengan nilai yang ditentukancopy()
- membuat salinan elemen dari sumber yang ditentukan ke tujuanswap()
- menukar posisi dua elemen dalam sebuah koleksiaddAll()
- menambahkan semua elemen koleksi ke koleksi lain
Sebagai contoh,
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); ) )
Keluaran
ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 Menggunakan swap (): (1, 2) ArrayList2 menggunakan addALl (): (1, 2) ArrayList1 menggunakan fill (): (0, 0) ArrayList2 menggunakan salin (): (0, 0)
Catatan : Saat melakukan copy()
metode, kedua daftar harus memiliki ukuran yang sama.
4. Mencari Menggunakan binarySearch ()
The binarySearch()
metode Java pencarian koleksi kerangka kerja untuk elemen tertentu. Ini mengembalikan posisi elemen dalam koleksi yang ditentukan. Sebagai contoh,
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); ) )
Keluaran
Posisi 3 adalah 2.
Catatan : Koleksi harus disortir sebelum melakukan binarySearch()
metode ini.
Untuk mengetahui lebih lanjut, kunjungi Pencarian Biner Java.
5. Komposisi
frequency()
- mengembalikan hitungan berapa kali suatu elemen ada dalam koleksidisjoint()
- memeriksa apakah dua koleksi mengandung beberapa elemen umum
Sebagai contoh,
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); ) )
Keluaran
ArrayList1: (1, 2, 3, 2) Hitungan 2: 2 ArrayList2: (5, 6) Dua daftar terputus-putus: benar
6. Menemukan Nilai Ekstrim
Metode min()
dan max()
kerangka koleksi Java digunakan untuk menemukan elemen minimum dan maksimum. Sebagai contoh,
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); ) )
Keluaran
Elemen Minimum: 1 Elemen Maksimum: 3