Rumah  >  Artikel  >  Java  >  Kocok() dalam Java

Kocok() dalam Java

PHPz
PHPzasal
2024-08-30 15:36:36942semak imbas

Java mempunyai banyak fungsi terbina dalam untuk melaksanakan operasi yang berbeza pada koleksi atau jenis data lain, dan salah satunya ialah shuffle. Fungsi Kocok tersedia dalam banyak bahasa lain seperti Python.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

  • Fungsi shuffle digunakan untuk shuffle elemen koleksi.
  • Ia mengubah suai unsur senarai yang diluluskan dalam parameter secara rawak.
  • Terdapat dua kaedah untuk mengocok dalam Java, satu menggunakan kaedah shuffle koleksi, dan satu lagi adalah dengan menggunakan kelas rawak.
  • Fungsi shuffle koleksi juga boleh dipanggil dalam dua cara, satu dengan parameter rawak untuk menentukan rawak dan satu lagi tanpa parameter.
  • kocok()
  • kocok(, )
  • Anda perlu lulus senarai supaya kami menukar tatasusunan kepada senarai, kemudian hantarkannya kepada koleksi.kocok dan sekali lagi tukarkan hasilnya kepada tatasusunan.

Sintaks untuk Shuffle() dalam Java

Pengisytiharan untuk kaedah shuffle:

public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)

Parameter:

  • Senarai: Senarai yang anda akan lulus akan dikocok.
  • Rawak: Ia adalah fungsi rawak yang diluluskan dengan nilai benih yang akan menjadi sumber rawak.

Pemulangan:

  • Fungsi shuffle tidak mengembalikan sebarang nilai; ia hanya merombak senarai.

Contoh Shuffle() dalam Java

Dalam contoh di bawah, kami mencipta senarai daripada tatasusunan dengan beberapa abjad dan menggunakan kaedah shuffle untuk mengocok tatasusunan. Setiap kali anda berlari, anda akan mendapat senarai kocok yang berbeza.

Contoh #1

Kod:

import java.util.*;
public class CollectionsShuffleExampleWithoutRandom {
public static void main(String[] args) {
List<String> list = Arrays.asList("R", "A", "H", "U", "L");
System.out.println("Before Shuffle : "+list);
Collections.shuffle(list);
System.out.println("After shuffle : "+list);
}
}

Output:

Kocok() dalam Java

Contoh #2

Dalam contoh di bawah, kami membuat senarai integer terpaut dan menambah beberapa integer padanya. Tetapi di sini kami meluluskan hujah lain iaitu fungsi Random yang akan menjadi sumber Randomness. Kemudian kita lulus fungsi Rawak dengan nilai benih 5. Ini adalah satu lagi rasa, atau kita boleh katakan kaedah menggunakan fungsi shuffle dengan Randomness.

Kod:

import java.util.*;
public class CollectionsShuffleWithRandom {
public static void main(String[] args) {
//Create linked list object
LinkedList<Integer> list = new LinkedList<Integer>();
//Add values
list.add(90);
list.add(100);
list.add(1);
list.add(10);
list.add(20);
System.out.println("Before Shuffle = "+list);
//Random() to shuffle the given list.
Collections.shuffle(list, new Random());
System.out.println("Shuffled with Random() = "+list);
//Random(5) to shuffle the given list.
Collections.shuffle(list, new Random(5));
System.out.println("Shuffled with Random(5) = "+list);
}
}

Output:

Kocok() dalam Java

Kaedah Kocok tanpa Kocok

Jika anda mahukan lebih kawalan ke atas shuffle, maka anda boleh menulis kaedah anda sendiri untuk merombak senarai dengan kaedah rawak dan pendekatan lain untuk merombak senarai. Kaedah ini lebih fleksibel dan mudah untuk dimuatkan dalam sebarang aplikasi. Anda sebenarnya boleh memahami cara shuffle berfungsi dalam kaedah terbina dalam Java.

Input: Tatasusunan int

Output: Tatasusunan dikocok(dalam susunan rawak)

Contoh:

public static int[] ShuffleArray(int[] array){
Random rand = new Random();  // Random value generator
for (int i=0; i<array.length; i++) {
int randomIndex = rand.nextInt(array.length);
int temp = array[i];
array[i] = array[randomIndex];
array[randomIndex] = temp;
}
return array;
}

Fungsi di atas di mana anda hanya perlu menghantar integer tatasusunan, dan ia akan mengembalikan tatasusunan yang dikocok. Di dalam fungsi, anda boleh melihat bahawa kami sedang melelaran tatasusunan sehingga panjangnya dan menjana nombor rawak, dan ia akan dianggap sebagai indeks tatasusunan, yang akan ditukar dengan tatasusunan lain. Ini adalah bagaimana elemen akan ditukar di dalam tatasusunan. Tatasusunan yang terhasil akan menjadi tatasusunan yang ditukar.

Daripada fungsi di atas, kita boleh mendapatkan konsep asas fungsi shuffle di mana senarai nilai akan dihantar, dan nombor rawak akan dijana setiap kali semasa mengulangi elemen dalam tatasusunan. Elemen akan ditukar dengan elemen lain dalam senarai yang sama dengan indeks yang dijana secara rawak daripada fungsi rawak.

Mata Penting untuk Fungsi Kocok

  • Kaedah ini berfungsi untuk mengubah suai unsur senarai secara rawak dan mengocoknya.
  • Setiap kali dilaksanakan, hasilnya mungkin berbeza.
  • Fungsi ini tidak mengambil banyak masa dan berjalan dalam masa linear.
  • Jika anda menyediakan senarai yang tidak melaksanakan antara muka RandomAccess, maka shuffle akan menyalin senarai ke dalam tatasusunan dahulu, mengocok salinan tatasusunan, kemudian menyalinnya ke dalam senarai hasil dan mengembalikannya.
  • Shuffle melintasi senarai ke belakang – elemen terakhir sehingga elemen kedua berulang kali.
  • Semasa melintasi, ia memilih unsur secara rawak dan menukarnya dengan kedudukan semasa.
  • Elemen yang dipilih secara rawak adalah daripada bahagian senarai daripada elemen pertama kepada elemen semasa.

Pengecualian:

  • UnsupportedOperationException: jika senarai yang diluluskan atau lelang senarai tidak menyokong operasi yang ditetapkan.

Aplikasi Shuffle

Mungkin terdapat banyak situasi di mana fungsi shuffle di bawah ialah beberapa aplikasi:

  • Mengombak senarai soalan dalam aplikasi QA.
  • Merombak senarai petikan yang anda mahu tunjukkan kepada pengguna apl anda setiap hari.
  • Aplikasi loteri di mana anda ingin memberikan nombor tiket kepada pengguna.
  • Menjana nombor transaksi unik untuk medan pembayaran.
  • ID pengguna unik penjanaan untuk pengguna yang berbeza boleh diawalikan kepada id pengguna.
  • Ia juga boleh digunakan dalam aplikasi kriptografi.

Kesimpulan

Dalam artikel di atas, kami memahami cara shuffle berfungsi dan cara anda boleh menggunakannya. Terdapat berbilang kes penggunaan di suatu tempat anda akan menggunakan fungsi shuffle dengan parameter rawak yang lain tanpa parameter rawak, dan sesetengah aplikasi mungkin memerlukan pelaksanaan fleksibel yang berbeza di mana anda boleh menulis fungsi shuffle anda sendiri menggunakan fungsi Random Java.

Atas ialah kandungan terperinci Kocok() dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Java Gantikan Char dalam StringArtikel seterusnya:Java Gantikan Char dalam String