前言:最近开发一款简易游戏,要将一个数组中的内容随机排列。考虑到以后可重用性,所以自己写了一款“泛型数组随机排列工具类”,现在分享给大家,希望能给大家带来启发。如果有好的方法类,请发给笔者邮箱,大家互相学习,感激不尽。
?源码:
- import java.lang.reflect.Array;
- import java.util.Random;
- /**
- * 泛型数组随机排列工具类。
- *
- * 要求:使用类类型。
- *
- * 示例:
- *
- * public static void main(String[] args) {
- * Integer[]is1 = {1,2,3,4,5,6};
- * is1= ArrayRandomPermutation.random(Integer.class,is1);
- * for(inti=0;i<is1.length-1;i++){
- * System.out.print(is1[i]+",");
- * }System.out.print(is1[is1.length-1]);//避免最后一个值带“,”。
- * }
- *
- * @author fzb
- * 2014-07-14
- */
- public
final
class ArrayRandomPermutation {- public
static <T> T[] random(Class<T> type, T[] array) {- Random rd = new Random();
- @SuppressWarnings("unchecked")
- T[] temp = (T[])Array.newInstance(type, array.length);
- int num;
- boolean[] bool =
new
boolean[array.length];- for (int
i = 0; i < array.length; i++) {- do {
- num = rd.nextInt(array.length);
- } while (bool[num]);
- bool[num] = true;
- temp[i] = array[num];
- }
- return temp;
- }
- }
如有好的建议,可留言或发至笔者邮箱:[email protected]
时间: 2024-11-02 23:24:39