java随机抽取不重复的数_java 随机抽取案例,不重复抽取

该博客通过一个具体的例子展示了如何在Java中实现从一个列表中随机抽取不重复的元素。首先创建了Student类,然后在TestStudent类中添加学生实例到列表,并通过getRanStu方法随机抽取并移除已抽取的学生,确保每次抽取的都是新的学生。
摘要由CSDN通过智能技术生成

以学生类为例,先准备一个Student类

package cn.sasa.demo1;

public class Student {

private int id;

private String name;

public int getId() {

return this.id;

}

public void setId(int id) {

if(id<0) {

this.id = 0;

}else {

this.id = id;

}

}

public String getName() {

return this.name;

}

public void setName(String name) {

this.name = name;

}

public void SayHi() {

System.out.println(this.id + "======" + this.name);

}

}

测试类TestStudent:

package cn.sasa.demo1;

import java.util.ArrayList;

import java.util.Random;

public class TestStudent {

public static void main(String[] args) {

//要求随机抽取三次,不重复

ArrayList stuList = addStu();

showStuList(stuList);

getRanStu(stuList);

showStuList(stuList);

getRanStu(stuList);

showStuList(stuList);

getRanStu(stuList);

showStuList(stuList);

}

public static ArrayList addStu() {

ArrayList stuList = new ArrayList();

Student s1 = new Student();

s1.setId(1);

s1.setName("abc");

Student s2 = new Student();

s2.setId(2);

s2.setName("bcd");

Student s3 = new Student();

s3.setId(3);

s3.setName("cde");

Student s4 = new Student();

s4.setId(4);

s4.setName("def");

Student s5 = new Student();

s5.setId(5);

s5.setName("efg");

Student s6 = new Student();

s6.setId(6);

s6.setName("fgh");

stuList.add(s1);

stuList.add(s2);

stuList.add(s3);

stuList.add(s4);

stuList.add(s5);

stuList.add(s6);

return stuList;

}

public static void showStuList(ArrayList stuList) {

System.out.println("====================================");

for(int i = 0; i < stuList.size(); i++) {

stuList.get(i).SayHi();

}

}

public static Student getRanStu(ArrayList stuList) {

System.out.println("====================================");

Random ran = new Random();

int i = ran.nextInt(stuList.size());

Student stu = stuList.get(i);

stuList.remove(i);

stu.SayHi();

return stu;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值