zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    7.15 更改累计和中的值
    7.10 计算中间值
    7.11 求总和的百分比
    7.9 计算模式
    7.8 计算累计差
    7.4 求一个表的行数
    7.6 生成累计和
    7.7 生成累积乘积
    7.2 求某列中的最小、最大值
    7.3 对某列的值求和
  • 原文地址:https://www.cnblogs.com/tqj-zyy/p/4559759.html
Copyright © 2011-2022 走看看