Algoritma Java

Dalam tutorial ini, kita akan belajar mengenai algoritma yang berbeza yang disediakan oleh kerangka koleksi Java dengan bantuan contoh.

Kerangka koleksi Java menyediakan pelbagai algoritma yang dapat digunakan untuk memanipulasi elemen yang tersimpan dalam struktur data.

Algoritma di Java adalah kaedah statik yang dapat digunakan untuk melakukan pelbagai operasi pada koleksi.

Oleh kerana algoritma dapat digunakan pada pelbagai koleksi, ini juga dikenali sebagai algoritma generik .

Mari lihat pelaksanaan kaedah berbeza yang terdapat dalam kerangka koleksi.

1. Menyusun menggunakan mengurutkan ()

The sort()kaedah yang disediakan oleh rangka kerja koleksi digunakan untuk unsur-unsur sejenis. 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); ) ) 

Pengeluaran

 Senarai Array yang tidak disusun: (4, 2, 3) Senarai Array yang disusun: (2, 3, 4) 

Di sini penyortiran berlaku mengikut urutan semula jadi (tertib menaik). Walau bagaimanapun, kita dapat menyesuaikan urutan penyortiran sort()kaedah menggunakan antara muka Perbandingan.

Untuk mengetahui lebih lanjut, lawati Penyortiran Java.

2. Mengacak Menggunakan shuffle ()

The shuffle()kaedah rangka koleksi Java digunakan untuk memusnahkan apa-apa perintah di dalam struktur data. Ia berlaku sebaliknya. 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); ) ) 

Pengeluaran

 Susun ArrayList: (1, 2, 3) ArrayList menggunakan shuffle: (2, 1, 3) 

Semasa kita menjalankan program, shuffle()kaedah akan mengembalikan output secara rawak.

Algoritma pengacakan digunakan terutamanya dalam permainan di mana kita mahukan output rawak.

3. Manipulasi Data Rutin

Di Jawa, kerangka pengumpulan menyediakan kaedah yang berbeda yang dapat digunakan untuk memanipulasi data.

  • reverse() - membalikkan susunan unsur
  • fill() - ganti setiap elemen dalam koleksi dengan nilai yang ditentukan
  • copy() - membuat salinan elemen dari sumber yang ditentukan ke destinasi
  • swap() - menukar kedudukan dua elemen dalam koleksi
  • addAll() - 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); ) ) 

Pengeluaran

 ArrayList1: (1, 2) ArrayList1 Terbalik1: (2, 1) ArrayList1 Menggunakan pertukaran (): (1, 2) ArrayList2 menggunakan addALl (): (1, 2) ArrayList1 menggunakan isi (): (0, 0) ArrayList2 menggunakan salin (): (0, 0) 

Catatan : Semasa menjalankan copy()kaedah, kedua-dua senarai harus berukuran sama.

4. Mencari dengan menggunakan binarySearch ()

The binarySearch()kaedah Java carian rangka kerja koleksi untuk elemen yang dinyatakan. Ia mengembalikan kedudukan 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); ) ) 

Pengeluaran

 Kedudukan 3 adalah 2. 

Catatan : Koleksi harus disusun sebelum melakukan binarySearch()kaedah.

Untuk mengetahui lebih lanjut, lawati Java Binary Search.

5. Komposisi

  • frequency() - mengembalikan jumlah kekerapan elemen hadir dalam koleksi
  • disjoint() - memeriksa sama ada dua koleksi mengandungi beberapa elemen yang sama

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); ) ) 

Pengeluaran

 ArrayList1: (1, 2, 3, 2) Count of 2: 2 ArrayList2: (5, 6) Dua senarai tidak sama: benar 

6. Mencari Nilai Ekstrim

Metode min()dan max()kaedah kerangka koleksi Java digunakan untuk mencari 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); ) ) 

Pengeluaran

 Elemen Minimum: 1 Elemen Maksimum: 3 

Artikel menarik...