Rumah >Java >javaTutorial >Program Java untuk merombak elemen vektor
Shuffle() ialah kaedah kelas koleksi dalam Java yang berfungsi secara rawak berdasarkan logik pilih atur bagi kumpulan elemen senarai tertentu. Pokok ialah dua jenis kaedah yang berbeza dalam kelas shuffle(), bergantung pada parameter tertentu.
Kaedah shuffle(senarai) koleksi Java.
Kaedah shuffle(senarai, rawak) Java Collections. Dalam kaedah ini, kita boleh menyusun aksara secara rawak untuk menghasilkan beberapa nilai rawak. Kemudian kami akan menggunakan kaedah suffle padanya.
Untuk melakukan shuffling vektor, kita boleh menggunakan algoritma shuffling Fisher-Yates. Dalam pendekatan ini kita boleh mengimbas vektor secara linear dan menukar setiap elemen dengan unsur rawak.
Dalam artikel hari ini, kita akan belajar cara mengocok elemen vektor menggunakan persekitaran Java.
Ini ialah algoritma yang mungkin dalam kod Java, bagaimana kita boleh mengocok elemen vektor yang mengandungi rentetan.
Langkah 1 - Bermula.
Langkah 2 - Isytiharkan pakej shuffle yang wujud dalam persekitaran Java.
Langkah 3 - Isytiharkan fungsi untuk mengocok kad.
Langkah 4 - Jika operasi adalah untuk mengocok vektor rawak, isytiharkannya.
Langkah 5 - Isytiharkan kelas awam.
Langkah 6 - Dapatkan vektor tatasusunan input.
Langkah 7 - Sebutkan panjang tatasusunan.
Langkah 8 - Jika pengisytiharan adalah rawak, isytiharkannya.
Langkah 9 - Teruskan ke langkah seterusnya.
Langkah 10 - Gunakan gelung for untuk menjalankan kaedah.
Langkah 11 - Ulangi nilai.
Langkah 12 - Kurangkan nilai jika perlu.
Langkah 13 - Tukar dan tukar kedudukan.
Langkah 14 - Hadiri Kursus Bantuan
Langkah 15 - Isytiharkan nilai perubahan sama dengan kelas pembantu.
Langkah 16 - Masukkan rentetan parameter.
Langkah 17 - Masukkan rentetan int.
Langkah 18 - Isytiharkan subarray.
Langkah 19 - Minta cetakan.
Langkah 20 - Penamatan.
General Syntax: public static void shuffle(List<?> list) public static void shuffle(List<?> list, Random random) Possible Code Syntax: public class Main { public static void main(String[] args) { Vector<String> v = new Vector<String>(); v.add("16"); v.add("07"); v.add("10"); v.add("2001"); v.add("1997"); System.out.println(v); Collections.shuffle(v); System.out.println(v); } } Double Shuffle: import java.util.*; public class CollectionsShuffleTutorialspoint { public static void main(String[] args) { List<String> list = Arrays.asList("X", "Y", "R", "A"); System.out.println("List Before Shuffle Here ----> : "+list); Collections.shuffle(list); System.out.println("List After Shuffle Is Here ----> : "+list); } }
Di sini kami telah menyebut kemungkinan sintaks yang berkaitan dengan kaedah shuffle. Anda dapat melihat bahawa proses shuffling berganda juga berfungsi untuk elemen vektor. Dengan sintaks yang mungkin ini, kami cuba membina beberapa kod Java kemudian untuk merombak elemen vektor dalam rentetan tertentu.
Kaedah 1 - Program Java untuk merombak elemen vektor
Kaedah 2−Algoritma Kocok Fisher-Yates
Di sini kami menyertakan beberapa kod binaan Java yang membolehkan kami mengocok beberapa elemen vektor dengan cara yang mudah dan rawak.
Terjemahan bahasa Cina bagiimport java.util.Collections; import java.util.Vector; public class VectorShuffleElements { public static void main(String[] args) { Vector<Integer> vNumbers = new Vector<Integer>(); vNumbers.add(16); vNumbers.add(07); vNumbers.add(2001); vNumbers.add(1997); vNumbers.add(10); Collections.shuffle(vNumbers); System.out.println("Vector contains are present in the list:----> " + vNumbers); } }
Vector contains are present in the list:----> [16, 2001, 7, 10, 1997]
import java.util.Vector; import java.util.Collections; public class Tutorialspoint { public static void main(String[] args){ Vector<String> vec07 = new Vector<String>(); vec07.add("10"); vec07.add("16"); vec07.add("7"); vec07.add("2001"); vec07.add("1997"); System.out.println("Original Vector is here ----> : " + vec07); Collections.shuffle(vec07); System.out.println("After shuffling we get the set here ---->: " + vec07); } }
Original Vector is here ----> : [10, 16, 7, 2001, 1997] After shuffling we get the set here ---->: [1997, 10, 7, 16, 2001]Terjemahan bahasa Cina bagi
import java.util.*; import java.util.Vector; import java.util.Collections; public class ARBRDD { public static void main(String[] args){ Vector<String> vec = new Vector<String>(); vec.add("13109"); vec.add("KOAA-DHAKA Maitree Express"); vec.add("International Railway Connectivity"); vec.add("India"); vec.add("Bangladesh"); System.out.println("Original Vector is here ----> : " + vec); Collections.shuffle(vec, new Random()); System.out.println("\nShuffled Vector with Random() is here ----> : \n" + vec); Collections.shuffle(vec, new Random(3)); System.out.println("\nShuffled Vector with Random(3) is here ---->: \n" + vec); Collections.shuffle(vec, new Random(5)); System.out.println("\nShuffled Vector with Random(5) is here ----> : \n" + vec); } }
Original Vector is here ----> : [13109, KOAA-DHAKA Maitree Express, International Railway Connectivity, India, Bangladesh] Shuffled Vector with Random() is here ----> : [KOAA-DHAKA Maitree Express, 13109, International Railway Connectivity, India, Bangladesh] Shuffled Vector with Random(3) is here ---->: [India, 13109, KOAA-DHAKA Maitree Express, International Railway Connectivity, Bangladesh] Shuffled Vector with Random(5) is here ----> : [International Railway Connectivity, 13109, Bangladesh, India, KOAA-DHAKA Maitree Express]Terjemahan bahasa Cina bagi
import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Random; public class RandomizeList { public static void main(String args[]) { List<Integer> numbers = Arrays.asList(16, 7, 10, 2001, 1997, 10, 2022); System.out.println("Particular List Before Shuffling Present Here ---->: " + numbers); Collections.shuffle(numbers); System.out.println("The Particular List after shuffling Done --->: " + numbers); Collections.shuffle(numbers, new Random(System.nanoTime())); System.out.println("Particular List After Shuffling Again Done ---->: " + numbers); } }
Particular List Before Shuffling Present Here ---->: [16, 7, 10, 2001, 1997, 10, 2022] The Particular List after shuffling Done --->: [1997, 2001, 10, 2022, 7, 10, 16] Particular List After Shuffling Again Done ---->: [1997, 2022, 10, 10, 16, 7, 2001]
import java.util.*; public class Greetingsshufflelist { public static void main(String[] args) { List<String> list = Arrays.asList("Hi!", "Hello!", "Hallo!", "Bonjour!"); System.out.println(list); Collections.shuffle(list, new Random(7)); System.out.println(list); } }
[Hi!, Hello!, Hallo!, Bonjour!] [Hi!, Hello!, Bonjour!, Hallo!]
Algoritma shuffle Fisher Yates ialah kaedah berjalan proses hipotetikal dalam Java dengan kerumitan berjalan O(n). Fungsi rand() menjana nombor rawak dalam masa O(1).
import java.util.Random; import java.util.Arrays; public class ShuffleRand{ static void randomize( int arr[], int n){ Random r = new Random(); for (int i = n-1; i > 0; i--) { int j = r.nextInt(i+1); int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } System.out.println(Arrays.toString(arr)); } public static void main(String[] args){ int[] arr = {16, 7, 10, 2022, 1997, 2001, 25, 11}; int n = arr.length; randomize (arr, n); } }
[1997, 2022, 2001, 25, 11, 16, 7, 10]
Dari artikel hari ini, kami mengetahui tentang beberapa kemungkinan kaedah shuffle kod java melalui sintaks dan algoritma. Semoga artikel ini membantu anda memahami cara pelbagai kaedah shuffling vektor yang dinyatakan di sini beroperasi.
Atas ialah kandungan terperinci Program Java untuk merombak elemen vektor. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!