• java获取随机不重复的数得值


     

    假如我有一个数组: 

    ArrayList<Integer> mArrayList = new ArrayList<Integer>();
        	mArrayList.add(0);
        	mArrayList.add(1);
        	mArrayList.add(2);
        	mArrayList.add(3);

    我需要从中随机抽取2个数  不能重复抽取,我就会用这个方法
     public void getValue(ArrayList<Integer> mArrayList){
        	Random mRandom = new Random();
        	int a = mRandom.nextInt(mArrayList.size());
        	
        	int value = mArrayList.get(a);
        	System.out.println(value + "");
        	mArrayList.remove(a);
        }

    原理就是每抽取一次就删除已经抽取出来的值,这样获取到的值就不会重复了

    完整代码:

    package com.xiaoqiu.test;
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class Test {
        public static void main(String[] args) {
        	ArrayList<Integer> mArrayList = new ArrayList<Integer>();
        	mArrayList.add(0);
        	mArrayList.add(1);
        	mArrayList.add(2);
        	mArrayList.add(3);
        	
        	Test mTest = new Test();
        	mTest.getValue(mArrayList);
        	mTest.getValue(mArrayList);
        }
        
        public void getValue(ArrayList<Integer> mArrayList){
        	Random mRandom = new Random();
        	int a = mRandom.nextInt(mArrayList.size());
        	
        	int value = mArrayList.get(a);
        	System.out.println(value + "");
        	mArrayList.remove(a);
        }
    }

    测试结果:

    3

    2


    3

    0


    2

    3

  • 相关阅读:
    MySQL日志
    MySQL索引和事务
    【收集】腾讯AlloyTeam
    js基础知识点(只有点)
    【扩展】Canvas绘制列表的尝试
    开播 开博 凯博
    【总结】移动web问题小结
    〖前端开发〗HTML/CSS基础知识学习笔记
    第四次读书笔记——《代码大全》(续)
    C++笔记(1)
  • 原文地址:https://www.cnblogs.com/deepalley/p/13625380.html
Copyright © 2020-2023  润新知