个人网站的制作教程抖音seo运营模式
题目:
分析以下需求,并用代码实现:
有一个抽奖池,该抽奖池中存放了奖励的金额,该抽奖池中的奖项为 {10,5,20,50,100,200,500,800,900,2,80,300,700};创建两个抽奖箱(线程)设置线程名称分别为“抽奖箱1”,“抽奖箱2”,随机从抽奖池中获取奖项元素并打印在控制台上,格式如下:
每次抽的过程中,不打印,抽完时一次性打印(随机)
抽奖箱1总共产生:6个奖项,分别为:[2, 20, 700, 50, 800, 5]最高奖项为800总金额:1577
抽奖箱2总共产生:7个奖项,分别为:[500, 80, 100, 200, 900, 300, 10]最高奖项为900总金额:2090
package com.songqiao.test05;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class MyThread extends Thread {static List<Integer> list= Stream.of(10,5,20,50,100,200,500,800,900,2,80,300,700).collect(Collectors.toList());//线程1static List<Integer> list1= new ArrayList<>();//线程2static List<Integer> list2= new ArrayList<>();@Overridepublic void run() {while (true){synchronized (MyThread.class){if (list.isEmpty()){if(getName().equals("抽奖箱1")){System.out.println("抽奖箱1总共产生:"+list1.size()+"个奖项,"+"分别为:"+list1+"最高奖项为"+Collections.max(list1)+"总金额:"+list1.stream().mapToInt(Integer::intValue).sum());}else {System.out.println("抽奖箱2总共产生:"+list2.size()+"个奖项,"+"分别为:"+list2+"最高奖项为"+Collections.max(list2)+"总金额:"+list2.stream().mapToInt(Integer::intValue).sum());}break;}else {//继续抽奖,打乱集合顺序Collections.shuffle(list);//删除第一个元素Integer prize = list.remove(0);//System.out.println(getName()+"又产生了一个:"+prize+"大奖");if("抽奖箱1".equals(getName())){list1.add(prize);}else {list2.add(prize);}}}try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}
}
package com.songqiao.test05;public class test05_choujiang {public static void main(String[] args) {MyThread t1=new MyThread();MyThread t2=new MyThread();t1.setName("抽奖箱1");t2.setName("抽奖箱2");t1.start();t2.start();}
}