[AppleScript] 纯文本查看 复制代码
package myexam;
import java.util.ArrayList;
import java.util.Random;
/*
* 有一组奖品:{macBookPro:8988?,三星note7:5695?,小米4:2688?,
* 联想P612:866?,iphone7:5688?}(每个奖品只有一个,并且同一时间只
* 能有一个人抽奖);开启两个线程A、B模拟两个人抽奖的过程(每个人抽取的
* 次数不做限制),直到奖品抽完为止,打印出每个人抽到的奖品和价值金额;
*
*/
public class Test7 {
public static void main(String[] args) {
Draw d=new Draw();
Thread t1=new Thread(d);
Thread t2=new Thread(d);
t1.start();
t2.start();
}
}
class Draw implements Runnable{
ArrayList<String> al=new ArrayList<String>();
//创建一个获取随机数的对象
Random r=new Random();
{
al.add("macBookPro:8988");
al.add("三星note7:5695");
al.add("小米4:2688");
al.add("联想P612:866");
al.add("iphone7:5688");
}
public void run() {
while(true){
//同一时间只能有一个人抽奖,加锁控制线程
synchronized(this){
if(al.isEmpty())
break;
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
int i=r.nextInt(al.size());
System.out.println(Thread.currentThread().getName()+"抽到"+al.get(i));
al.remove(i);
}
}
}
}
[AppleScript] 纯文本查看 复制代码
package myexam;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
/*
*
* 接收用户从控制台输入的一个区间,在该区间范围内(包含左右边界),随机生成20个不重复的数字(若用户输入该区间范围小于20,则提示用户重新给定区间):
a.统计出所有的偶数,输出到控制台;
b.将剩下的数字按照降序排序后存放到当前项目下,命名为number.txt,每个数用“-” 隔开; 比如:13-1-5-27-23
示例
控制台提示: 请输入范围大于20的区间,比如“10-35”
用户输入: 10-18
控制台提示: 对不起,您输入的区间范围小于20,请重新输入
用户输入: 5-26
控制台提示: 偶数有:8,12,6,24
控制台提示: 将奇数写入number.txt 成功
*
*
*/
public class Test8 {
public static void main(String[] args) throws IOException {
System.out.println("请输入范围大于20的区间,比如“10-35”");
//创建键盘录入对象
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
//创建随机数获取对象
Random r=new Random();
Set<Integer> set=new TreeSet<Integer>();
Set<Integer> newSet=new TreeSet<Integer>();
//创建一个文件number.txt
BufferedWriter bufw=new BufferedWriter(new FileWriter("number.txt"));
//判断输入的数字是不是在指定范围内
while(true){
String line=bufr.readLine();
String[] str=line.split("-");
int start=Integer.parseInt(str[0]);
int end=Integer.parseInt(str[1]);
if(end-start>=20){
System.out.print("偶数有:");
while(set.size()<20){
int num=r.nextInt(end-start+1)+start;
set.add(num);
}
for (Iterator<Integer> it = set.iterator(); it.hasNext();) {
Integer n = (Integer) it.next();
if((n%2)==0){
//获取偶数
System.out.print(n+" ");
}else{
//获取奇数
bufw.write(n+"-");
}
bufw.flush();
}
System.out.println();
System.out.println("将奇数写入number.txt 成功");
}else {
System.out.println("对不起,您输入的区间范围小于20,请重新输入");
}
bufw.close();
}
}
}
[Java] 纯文本查看 复制代码
import java.util.HashSet;
import java.util.Iterator;
/**
*
* 7、有一组奖品:{macBookPro:8988?,三星note7:5695?,小米4:2688?,联想P612:866?,iphone7:5688?}(
* 每个奖品只有一个,并且同一时间只能有一个人抽奖);开启两个线程A、B模拟两个人抽奖的过程(每个人抽取的次数不做限制),直到奖品抽完为止,
* 打印出每个人抽到的奖品和价值金额;
*
*/
class Prize {
public String name;
public Integer price;
public Prize(String name, Integer price) {
super();
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "Prize [name=" + name + ", price=" + price + "]";
}
}
class MyThread extends Thread {
private HashSet<Prize> hashSet;
public MyThread(HashSet<Prize> hashSet) {
this.hashSet = hashSet;
}
@Override
public void run() {
while (true) {
synchronized (Thread.class) {
Iterator<Prize> iterator = hashSet.iterator();
if (iterator.hasNext()) {
Prize string = iterator.next();
System.out.println(this.getName() + string);
iterator.remove();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
break;
}
}
}
}
}
public class Test00 {
public static HashSet<Prize> hashSet = new HashSet<Prize>();
public static void main(String[] args) {
hashSet.add(new Prize("macBookPro", 8988));
hashSet.add(new Prize("三星note7", 5695));
hashSet.add(new Prize("小米4", 2688));
hashSet.add(new Prize("联想P612", 866));
hashSet.add(new Prize("iphone7", 5688));
MyThread myThread1 = new MyThread(hashSet);
MyThread myThread2 = new MyThread(hashSet);
myThread1.setName("张三 ");
myThread2.setName("李四 ");
myThread1.start();
myThread2.start();
}
}
[Java] 纯文本查看 复制代码
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
import java.util.TreeSet;
/**
*
* 8、接收用户从控制台输入的一个区间,在该区间范围内(包含左右边界),随机生成20个不重复的数字(若用户输入该区间范围小于20,则提示用户重新给定区间):
*
* a.统计出所有的偶数,输出到控制台;
*
* b.将剩下的数字按照降序排序后存放到当前项目下,命名为number.txt,每个数用“-” 隔开; 比如:13-1-5-27-23
*
* 示例
*
* 控制台提示: 请输入范围大于20的区间,比如“10-35” 用户输入: 10-18 控制台提示: 对不起,您输入的区间范围小于20,请重新输入 用户输入:
* 5-26 控制台提示: 偶数有:8,12,6,24 控制台提示: 将奇数写入number.txt 成功
*
*/
public class Test01 {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入范围大于20的区间...");
ArrayList<Integer> arrayList = new ArrayList<Integer>();
String line = "";
while (true) {
line = scanner.nextLine();
boolean matches = line.matches("\\d+-\\d+");
if (matches == false) {
System.out.println("输入有误, 请重新输入...");
} else {
String[] split = line.split("-");
int int0 = Integer.parseInt(split[0]);
int int1 = Integer.parseInt(split[1]);
int result = int1 - int0;
if (result < 20) {
System.out.println("对不起,您输入的区间范围小于20,请重新输入");
}else{
break;
}
}
}
String[] split = line.split("-");
for (int i = 0; i < split.length; i++) {
arrayList.add(Integer.parseInt(split));
}
TreeSet<Integer> treeSet = new TreeSet<Integer>();
Random random = new Random();
while (treeSet.size() < 20) {
int nextInt = random.nextInt(arrayList.get(1) - arrayList.get(0)) + arrayList.get(0);
treeSet.add(nextInt);
}
arrayList.clear();
arrayList.addAll(treeSet);
System.out.println(arrayList);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("偶数有:");
for (Iterator<Integer> iterator = arrayList.iterator(); iterator.hasNext();) {
Integer integer = iterator.next();
if (integer % 2 == 0) {
stringBuilder.append(integer + ",");
iterator.remove();
}
}
String string = stringBuilder.toString();
String substring = string.substring(0, string.length() - 1);
System.out.println(substring);
Collections.reverse(arrayList);
System.out.println("奇数有:"+arrayList.toString());
stringBuilder.delete(0, stringBuilder.length());
for (int i = 0; i < arrayList.size(); i++) {
Integer integer = arrayList.get(i);
if (i == arrayList.size() - 1) {
stringBuilder.append(integer);
} else {
stringBuilder.append(integer + "-");
}
}
FileWriter fileWriter = new FileWriter("number.txt");
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.println(stringBuilder.toString());
printWriter.close();
scanner.close();
}
}