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
Pengisytiharan untuk kaedah shuffle:
public static void shuffle(List<?> list)
public static void shuffle(List<?> list, Random random)
Parameter:
Pemulangan:
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.
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:
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:
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.
Pengecualian:
Mungkin terdapat banyak situasi di mana fungsi shuffle di bawah ialah beberapa aplikasi:
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!