(即:品 A、品 B、品 C 和品 D),String 型的性别(即:男、女、 other), float 型的品相分数组 score[]( 3 个元素,代表不同分数,如 score[0]为毛质分、 score[1] 为灵活度分、 score[2] 为品种分;分数均在 1-100 之间)
A) 随机构建 1000 个 Dog 类对象(数据不从控制台输入):品种、性别、品相分数组均随机产生(注意数据的有效范围,如:品种只能取品 A、品 B、品 C 和品D)。随机产生的狗可能存在信息相同的情况,
B)分别按照毛质分、灵活度分、品种分,对 1000 个 Dog 对象进行降序排列,并输出排序前后的 Dog 的信息。注:这里有 3 个排序的结果,此处必须降序
import java.util.*;
/**
* @author 嫣然
*/
public class Dog {
public List<String> set() {
List<String> list = new ArrayList<>();
Random random = new Random();
String[] type = {"品A", "品B", "品C", "品D"};
String[] gender = {"男", "女", "other"};
float[] score = new float[3];
//定义随机品种
int max1 = 4;
int min1 = 0;
int count = random.nextInt(max1) % (max1 - min1 + 1) + min1;
//定义随机性别
int max2 = 3;
int min2 = 0;
int count1 = random.nextInt(max2) % (max2 - min2 + 1) + min2;
//定义随机品相
for (int i = 0; i < score.length; i++) {
score[i] =(int)(Math.random()*100);
}
//添加到集合 第一个添加的影响排序结果
list.add(String.valueOf(score[0]));
list.add(String.valueOf(score[1]));
list.add(String.valueOf(score[2]));
list.add(type[count]);
list.add(gender[count1]);
return list;
}
public static void main(String[] args) {
Dog dog = new Dog();
List<String> list1=new ArrayList<>();
for (int i = 0; i < 1000; i++) {
list1.add(String.valueOf(dog.set()));
}
for (int i = 0; i < 1000; i++) {
//降序
Collections.sort(list1,Collections.reverseOrder());
System.out.println(list1.get(i));
}
}
}
输出结果(部分):
[99.0, 83.0, 27.0, 品A, other]
[99.0, 7.0, 18.0, 品C, 男]
[99.0, 69.0, 37.0, 品B, 男]
[99.0, 68.0, 55.0, 品C, other]
[99.0, 66.0, 14.0, 品D, 女]
[99.0, 58.0, 32.0, 品A, other]
[99.0, 53.0, 69.0, 品D, other]
[99.0, 19.0, 65.0, 品A, other]
[98.0, 9.0, 76.0, 品B, other]
[98.0, 87.0, 56.0, 品D, 女]
[98.0, 71.0, 79.0, 品D, 男]
[98.0, 67.0, 37.0, 品D, 女]
思路:
1.定义Dog类,定义品种的数组;
2.循环1000次,创建1000个对象,用Random类随机数组的下标。