import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;
public class TestOne {
public static void main(String[] args) {
int a = 5;
while (a>0) {
//从1-33随机取出6个不同的数
Random random=new Random();
int [] r=new int[6];
for (int i = 0; i < r.length; i++) {
int temp=random.nextInt(33)+1;
for (int j = 0;j < r.length; j++) {
if(r[j] == temp){
//当发现有重复时,重新随机获取一个数,而且再从r[0]开始比较是否有重复值
temp=random.nextInt(33)+1;
j=-1;
}
}
r[i]=temp;
}
//1、冒泡排序通过遍历数组进行比较,将最大值依次排到对数组进行升序排列
// for (int i = r.length-1; i > 0; i--) {
// for (int j = 0; j < i; j++) {
// if (r[j]>r[j+1]) {
// swap(r, j, j+1);
// }
// }
// }
//2、用Arrays类对数组进行快速升序排列
Arrays.sort(r);
//3、选择排序,将第一个数作为最小值,然后循环比较强最小值依次放在左侧,得到升序排列的数组
// for (int i = 0; i < r.length-1; i++) {
// int min = i;
// for (int j = i+1; j < r.length; j++) {
// if (r[min]>r[j]) {
// min = j;
// }
// }
// if (min != i) {
// swap(r, min, i);
// }
// }
//4、插入排序,通过不断地插入比较,每插入一个数就将这个数及其左侧的数进行比较排序
// for (int i = 1; i < r.length; i++) {
// for (int j = i; j > 0; j--) {
// if (r[j]<r[j-1]) {
// swap(r, j, j-1);
// }
// }
// }
//5、堆排序,每次建立大根堆,然后依次将堆顶与堆的最后一个元素交换
// int arrayLength=r.length;
// //循环建堆
// for(int i=0;i<arrayLength-1;i++){
// //建大顶堆
// buildMaxHeap(r,arrayLength-1-i);
// //交换堆顶和最后一个元素
// swap(r,0,arrayLength-1-i);
// // System.out.println(Arrays.toString(r));
// }
//输出
System.out.print("红色球:"+Arrays.toString(r));
// for (int m = 0; m < r.length; m++) {
// System.out.print(r[m]+ " ");
// }
System.out.print(" 蓝色球: "+(random.nextInt(16)+1));
a--;
System.out.println();
}
}
//对a数组从0到lastIndex(最后一个节点)建大顶堆
public static void buildMaxHeap(int[] a,int lastIndex){
//从lastIndex处节点的父节点开始
for(int i=(lastIndex-1)/2;i>=0;i--){
int k=i;
while(k*2+1<=lastIndex){
//k节点的左子节点的索引
int biggerIndex=2*k+1;
//如果biggerIndex小于lastIndex,即biggerIndex+1代表的k节点的右子节点存在
if(biggerIndex<lastIndex){
if(a[biggerIndex]<a[biggerIndex+1]){
//biggerIndex记录较大子节点的索引
biggerIndex++;
}
}
//如果k节点的值小于其较大的子节点的值
if(a[k]<a[biggerIndex]){
swap(a,k,biggerIndex);
//将biggerIndex赋予k,开始while循环的下一次循环,重新保证k节点的值大于其左右子节点的值
k=biggerIndex;
}else{
break;
}
}
}
}
//交换数组中的两个元素
private static void swap(int[] data, int i, int j) {
int tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class TestTwo {
public static void main(String[] args) {
int a = 5;
while (a>0) {
//从1-33随机取出7个不同的数
Random random=new Random();
List<Integer> list = new LinkedList<Integer>();
// List<Integer> aList = new LinkedList<Integer>();
while (list.size()<7) {
int temp=random.nextInt(33)+1;
list.add(temp);
//对List集合进行去重,利用Set集合不允许出现重复的元素
Set<Integer> set = new HashSet<Integer>(list);
list = new LinkedList<Integer>(set);
//对List集合进行去重,将不重复的值放入新集合中
// for (Integer integer : list) {
// if (!aList.contains(integer)) {
// aList.add(integer);
// }
// }
}
//用Collections类进行排序
Collections.sort(list);
//输出
System.out.print("红色球:");
for (Integer integer : list) {
System.out.print(integer.toString()+" ");
}
System.out.print("蓝色球:");
System.out.print(random.nextInt(16)+1);
a--;
System.out.println();
}
}
}