需求:
群主发红包,三个人随机抽取。
1.公共父类:
package com.bai.ai;
public class User {
private String name;
private int money;
public User(String name, Integer money) {
this.name = name;
this.money = money;
}
public User() {
}
public String getName() {
return name;
}
public void show(){
System.out.println("我叫:"+name+
",我有的钱是:"+money);
}
public void setName(String name) {
this.name = name;
}
public Integer getMoney() {
return money;
}
public void setMoney(Integer money) {
this.money = money;
}
}
2.群主
package com.bai.ai;
import java.util.ArrayList;
public class Manger extends User {
public Manger(String name, Integer money) {
super(name, money);
}
public Manger() {
}
public ArrayList<Integer> send(int totalMoney, int count){
ArrayList<Integer> list=new ArrayList<Integer>();
//当前余额
int leftMoney=super.getMoney();
if(leftMoney<totalMoney){
System.out.println("余额不足");
return list;
}
//扣钱
super.setMoney(leftMoney-totalMoney);
//发红包(平均拆分)
int avg = totalMoney / count;
int mod=totalMoney%count; //零头
//剩下的零头放在最后一个红包中
//红包进集合
for (int i = 0; i < count-1; i++) {
list.add(avg);
}
int last=avg+mod;
list.add(last);
return list;
}
}
3群众:
package com.bai.ai;
import java.util.ArrayList;
import java.util.Random;
public class Menber extends User {
public Menber(String name, Integer money) {
super(name, money);
}
public Menber() {
}
public void receive(ArrayList<Integer> list){
//抽取红包,随机获取
int index=new Random().nextInt(list.size());
//从集合中删除,并且得到被删除的红包给自己
int delta = list.remove(index);
//当前成员本来的钱数
int money=super.getMoney();
super.setMoney(money+delta);
}
}
4.测试:
package com.bai.ai;
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
Manger manger=new Manger("群主",100);
Menber a=new Menber("A",0);
Menber b=new Menber("B",0);
Menber c=new Menber("C",0);
manger.show();
a.show();
b.show();
c.show();
System.out.println("+++++++++++++++");
ArrayList<Integer> list = manger.send(20, 3);
a.receive(list);
b.receive(list);
c.receive(list);
manger.show();
a.show();
b.show();
c.show();
}
}