java乱序排列数组_java数组排序方法

java乱序排列数组_java数组排序方法在 Java 中 乱序数组可以通过多种方法实现 下面是一些常见的方法 1 使用 Collections shuffle 方法 javaimport java util Arrays import java util Collections import java util List import java util Random public class ShuffleArray

在Java中,乱序数组可以通过多种方法实现,下面是一些常见的方法:

1. 使用`Collections.shuffle`方法:

 import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Random; public class ShuffleArray { public static void main(String[] args) { Integer[] arr = {1, 2, 3, 4, 5}; List 
  
    
  
    list = Arrays.asList(arr); 
   Collections.shuffle(list); arr = list.toArray(new Integer); System.out.println(Arrays.toString(arr)); } } 

2. 使用Fisher-Yates洗牌算法(也称为Knuth洗牌算法):

 import java.util.Random; public class FisherYatesShuffle { private static final Random random = new Random(); public static void main(String[] args) { int[] arr = new int; for (int i = 0; i < arr.length; i++) { arr[i] = i; } shuffle(arr); System.out.println(Arrays.toString(arr)); } private static void shuffle(int[] array) { for (int i = array.length - 1; i > 0; i--) { int j = random.nextInt(i + 1); int temp = array[i]; array[i] = array[j]; array[j] = temp; } } } 

3. 使用自定义比较器进行排序,其中使用HashMap来存储每个素的随机序列号:

 import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class CustomSort { public static void main(String[] args) { List 
  
    
  
    list = Arrays.asList(1, 2, 3, 4, 5); 
   Collections.sort(list, new Comparator 
  
    
  
    () { 
   private Map 
  
    
  
    map = new HashMap<>(); 
   @Override public int compare(Integer v1, Integer v2) { if (!map.containsKey(v1)) { map.put(v1, Math.random()); } if (!map.containsKey(v2)) { map.put(v2, Math.random()); } return Double.compare(map.get(v1), map.get(v2)); } }); System.out.println(list); } } 

以上方法都可以实现数组的乱序,你可以根据具体需求选择合适的方法。

编程小号
上一篇 2025-03-01 10:36
下一篇 2025-03-01 10:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/120046.html