`

从数组中随机取出各个元素并不重复

    博客分类:
  • Java
 
阅读更多

从数组中随机取出各个元素并不重复 

1.定义一个Integer的List,且长度和要排序的数组长度相同;

2.从List随机取出一个随机数,该数相当是数组的指针;

3.移除后再从剩下的List元素里面取另一个元素,如此类推

public static void main(String[] args) {
  String[] strArray = {"a","b","c","d","e","f","g","h","i","j"};

     //定义一个Integer的List,且长度和要排序的数组长度相同;
  String[] resultStr = new String[strArray.length];
  List<Integer> intList = new ArrayList<Integer>();
  //给intList初始化
  for (int i = 0; i < strArray.length; i++) {
   intList.add(i, i);
  }
  int i = 0;
  //选出随机数
  while(intList.size()>0){
   Random random = new Random();
   int ranIdex = random.nextInt(intList.size());
   resultStr[i] = strArray[intList.get(ranIdex)];
   //移除随机数
   intList.remove(ranIdex);
   i++;
  }
  for (int j = 0; j < resultStr.length; j++) {
   System.out.println("最后的结果是========" + resultStr[j]);
   
  }
 }

分享到:
评论

相关推荐

    从n个数组中取出所有排列组合(Java实现)

    从n个数组中取出所有排列组合(Java实现)

    JavaScript 产生不重复的随机数三种实现思路

    方法一 思路:首先创建一个1到3000的数组,每次取一个数,然后去除数组中取出的这个数, 这样就可以实现永不重复。 代码如下: [removed] var count=3000; var originalArray=new Array;//原数组 //给原数组original...

    javascript入门笔记

    2、声明变量允许不使用var关键字,但并不推荐 练习: 1、创建一个网页 04-variable.html 2、声明一对 [removed][removed],并完成以下变量的声明 1、声明一个变量用于保存用户的姓名,并赋值为 "张三丰"; 2、...

    java源码包2

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    PHP开发实战1200例源码

    实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置系统的当前时间 169 实例142 将日期和时间转换为时间戳 170 实例143 获取系统...

    用于进行衍射光学元素(DOE)的相位整形设计

    读取并处理输入图像,生成随机相位的光场 设置DOE和目标平面参数 初始化DOE相位和误差数组 进行Gerchberg-Saxton(GS)迭代法相位整形 傅里叶变换计算复振幅,取出相位,反变换恢复整形光场 重复GS迭代来逼近理想相位 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置系统的当前时间 169 实例142 将日期和时间转换为时间戳 170 实例143 获取系统...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例137 从数组中随机取出元素 165 实例138 合并数组 166 实例139 拆分数组 167 实例140 遍历数组 168 2.11 日期和时间 169 实例141 设置系统的当前时间 169 实例142 将日期和时间转换为时间戳 170 实例143 获取系统...

    e语言mp3源码

    然后数组清零,多文件对话框保存到音乐路径程序集变量中。默认选择第一个,然后获取焦点。定义个程序集数组变量存储路径 2:加入列表框:判断取数组成员数的音乐路径不等于0,在判断列表框的表项数不等于0,那么就取...

    精易模块v6.6

    1、新增“数组_寻找数组”查找一个数组里有没有该元素或者该元素的下标;感谢【@挥剑い为红颜 】建议 【@ggp 】的优化建议; 2、新增“内存_调用子程序_远程”“内存_远程创建内存_文本”“内存_远程创建内存_字节集...

    net学习笔记及其他代码应用

    这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 答:接口可以继承接口。...

    数据结构(C++)有关练习题

    内容及步骤: 1、 设有一个线性表(e0,e1,e2,e3,…,en-2,en-1)存放在一个一维数组A[arraySize]中的前n个数组元素位置。请编写一个函数将这个线性表原地逆置,即将数组的前n个原地址内容置换为(en-1,en-2,…,e3,...

    c语言经典案例

    实例125 求数组元素中的最小值 165 实例126 打印1~5的阶乘 166 实例127 求最大公约数和最小公倍数 167 实例128 求直角三角形的斜边 168 实例129 相对的最小整数 169 实例130 当前时间转换 170 实例131 显示程序运行...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    你必须知道的495个C语言问题

    1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么...

    精易官方免费模块v3.60版

    本次开源,并不意味着精易模块不再更新,而是意味着精易模块会更好的更新。在往后的版本中, 精易模块会一直以开源的形式存在。我们会吸收对模块命令提出改善的会员的建议,修复并继续开源发布, 如果你有更好的改善...

Global site tag (gtag.js) - Google Analytics