泛型数组随机排列工具类

前言:最近开发一款简易游戏,要将一个数组中的内容随机排列。考虑到以后可重用性,所以自己写了一款“泛型数组随机排列工具类”,现在分享给大家,希望能给大家带来启发。如果有好的方法类,请发给笔者邮箱,大家互相学习,感激不尽。

?源码:

  1. import java.lang.reflect.Array;
  2. import java.util.Random;
  3. /**
  4. * 泛型数组随机排列工具类。
  5. *
  6. * 要求:使用类类型。
  7. *
  8. * 示例:
  9. *
  10. * public static void main(String[] args) {
  11. *     Integer[]is1 = {1,2,3,4,5,6};
  12. *     is1= ArrayRandomPermutation.random(Integer.class,is1);
  13. *     for(inti=0;i<is1.length-1;i++){
  14. *         System.out.print(is1[i]+",");
  15. *     }System.out.print(is1[is1.length-1]);//避免最后一个值带“,”。
  16. *  }
  17. *
  18. * @author fzb
  19. * 2014-07-14
  20. */
  21. public
    final
    class ArrayRandomPermutation {
  22. public
    static <T> T[] random(Class<T> type, T[] array) {
  23. Random rd = new Random();
  24. @SuppressWarnings("unchecked")
  25. T[] temp = (T[])Array.newInstance(type, array.length);
  26. int num;
  27. boolean[] bool =
    new
    boolean[array.length];
  28. for (int
    i = 0; i < array.length; i++) {
  29. do {
  30. num = rd.nextInt(array.length);
  31. } while (bool[num]);
  32. bool[num] = true;
  33. temp[i] = array[num];
  34. }
  35. return temp;
  36. }
  37. }

如有好的建议,可留言或发至笔者邮箱:[email protected]

泛型数组随机排列工具类,布布扣,bubuko.com

时间: 2024-11-02 23:24:39

泛型数组随机排列工具类的相关文章

黑马程序员——【Java基础】——泛型、Utilities工具类、其他对象API

一.泛型 (一)泛型概述 1.泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 2.泛型技术是给编译器使用的技术,用于编译时期,确保类型的安全. 3.泛型的擦除:运行时,会将泛型去掉,生成class文件中的是不带泛型的,这个称为“泛型的擦除”.擦除泛型的原因是为了兼容运行时的类加载器. 4.泛型的好处:(1)将运行时期出现的问题ClassCastException,转移到了编译时期.方便于程序员解决问题,让运行时期问题减少.安全.(2)避免了强制转换的麻烦. 5.泛

Arrays是专门用于操作数组的工具类

排序或者查找数组里面的内容 多值传递 集合转数组 数组转集合 数组转字符串 /* Arrays 是用于操作数组的工具类,里面全是静态的,和Collections是用来操作集合的工具类是不一样的 当import导入的没有说明static,那么就说明是导入包中的所有类, 如果说明是static的时候就说明导入的是某个类的所有静态成员,记得要加上static的说明符号. import static java.lang.System.*; */ import java.util.*; public cl

数组的工具类Arrays

Arrays是数组的工具类,里面定义了很多的静态方法来方便使用者对数组进行操作. binarySearch([],fromIndex,toIndex,value) 使用二分法来查找指定的value是否存在在数组中.第一个参数是指定需要查找的数组,第二个 参数指定搜索的起始点,第三个参数指定搜索的结束位置,这个搜索的范围是一个左闭右开区间.最后一个参数是需要查找的值.如果找到返回数组的下标,如果没找到则返回一个负数.其中2,3参数可以省略. copyOf([],int length) 复制一个数组

springBoot 数组增加工具类包

1.pom中加入依赖 <!--数组工具类 start--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.5</version> </dependency> <!--数组工具类 end--> 2.ArrayUtils  进行数组的合并

操作数组的工具类Arrays

Java提供的Arrays类里包含一些static修饰的方法可以直接操作数组. int binarySearch(type[] a, type key)使用二分法查询key元素值在a数组中出现的索引,如果a数组不包含key,返回负数,调用该方法要求数组中元素已经按升序排列. int binarySearch(type[] a, int fromIndex, int toIndex, type key)给定范围内二分搜索 type[] copyOf(type[] original, int new

Java基础---泛型、集合框架工具类:collections和Arrays

第一讲     泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类型的数据,无法加入指定类型以外的数据. 3.泛型是提供给javac编译器使用的可以限定集合中的输入类型说明的集合时,会去掉“类型”信息,使程序运行效率不受影响,对参数化的泛型类型,getClass()方法的返回值和原始类型完全一样. 4.由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就

黑马程序员————数组工具类对象建立

今天学习了数组工具类对象的建立巩固掌握以前学习的语句,函数,数组等相关知识 /** 建立一个用于操作数组的工具类,其中包括者常见的对数组操作的函数,如:最值,排序等 @author lostnotes */ public class ArraryTool { private ArrayTool () {}//该类中的方法都是静态的,所以不需要创建对象. //为了保证其他成员不创建该类对象,可以构造函数私有化. } /** 获取整数类型数组的最大值 @param arr 接收一个元素为int类型的

Arrays数组工具类的使用

package com.fish.util; import java.util.Arrays; import java.util.List; /*     数组的工具类(Arrays)     1,二分查找,数组需要有序     binarySearch(int[])     binarySearch(double[])          2,数组排序     sort(int[])     sort(char[])          2,将数组变成字符串.      toString(int[

Java知识系统回顾整理01基础06数组07数组工具类Arrays

一.Arrays简介 Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能. 大大提高了开发人员的工作效率. ? ? 二.Arrays提供的数组复制方法 与使用System.arraycopy进行数组复制类似的, Arrays提供了一个copyOfRange方法进行数组复制. 不同的是System.arraycopy,需要事先准备好目标数组,并分配长度. copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了. 除此之外,需要注意的是 copyOfRan