Java 在循环编号后添加标签

Java 在循环编号后添加标签,java,sorting,for-loop,Java,Sorting,For Loop,我编写此代码是为了计算数字: import java.util.Random; public class Sorting { private double[] player; private int k=5; private int j=5; public void sort(){ player = new double[k]; for(int i=1;i<k;i++){ double tempp ; for(i=1;i<j

我编写此代码是为了计算数字:

import java.util.Random;

public class Sorting {
private double[] player;
private int k=5;
private int j=5;

public void sort(){
    player = new double[k];
    for(int i=1;i<k;i++){
        double tempp ;
            for(i=1;i<j;i++){
                tempp = Math.random() * i;
                player[i]=tempp;
                System.out.println("Result "+i+"="+player[i]);
            }
        }
} 

public static void main(String []args){
    Sorting k=new Sorting();
    k.sort();
}}
现在,我想添加一个标签,从最大到最小的结果编号,标签为优秀、非常好、好和坏,如下所示:

结果1=0.45296897301949标记为良好
结果2=0.09643822768644617标记为不良
结果3=1.841047494651026标记非常好
结果4=2.1807153629323777标记为优秀
公共类排序
{
私人双人选手;
私有int k=5;
私人int j=5;
String[]评级={“差”、“好”、“非常好”、“优秀”};
公共无效排序()
{
玩家=新双[k];

对于(inti=1;iTreeSet,默认情况下已对数字进行升序排序

以下是我的版本:

样本输出:

结果:0.12754837127918317=>不好
结果:0.7956890627771006=>优秀
结果:0.3123868511945034=>良好
结果:0.6332109887264882=>非常好

public class FourRandomNumbersEvaluator {

    private TreeSet<Double> numbers;

    private Map<Double,Evaluation> numbersWithEvaluations = new HashMap<Double,Evaluation>();

    private enum Evaluation {BAD, GOOD, VERY_GOOD, EXCELLENT}

    private static final int NUMBER_OF_GENERATED_NUMBERS = 4;


    public FourRandomNumbersEvaluator(TreeSet<Double> numbers) {
        if(numbers == null || numbers.size() != 4){
            throw new IllegalArgumentException("your have to provide exactly 4 numbers");
        }
        this.numbers = numbers;
    }

    public static void main(String[] args) {
        FourRandomNumbersEvaluator evaluator = new FourRandomNumbersEvaluator(generateNumbers());
        evaluator.evaluate();
        evaluator.printNumbersWithEvaluations();
    }

    private static TreeSet<Double> generateNumbers() {
        TreeSet<Double> numbers = new TreeSet<Double>();
        while(numbers.size() < NUMBER_OF_GENERATED_NUMBERS){
            double number = Math.random();
            if(numberNotAlreadyExisting(numbers, number)){
                numbers.add(number);
            }
        }
        return numbers;
    }

    private static boolean numberNotAlreadyExisting(TreeSet<Double> numbers, double number) {
        return !numbers.contains(number);
    }

    public void evaluate() {
        int i = 0;
        for(Double number : numbers){
            numbersWithEvaluations.put(number, Evaluation.values()[i++]);
        }
    }

    private void printNumbersWithEvaluations(){
        for(Map.Entry<Double,Evaluation> numberWithEvaluation : numbersWithEvaluations.entrySet())
        System.out.println("Result: "+  numberWithEvaluation.getKey() + " => " + numberWithEvaluation.getValue());
    }
}
公共类四随机数赋值器{
私有树集数;
private Map numbersWithEvaluations=new HashMap();
私有枚举评估{坏,好,非常好,优秀}
生成的私有静态最终整数的整数=4;
public FourRandomNumberEvaluator(树集编号){
if(numbers==null | | numbers.size()!=4){
抛出新的IllegalArgumentException(“您必须准确提供4个数字”);
}
这个。数字=数字;
}
公共静态void main(字符串[]args){
FourRandomNumberEvaluator=新的FourRandomNumberEvaluator(generateNumbers());
evaluator.evaluate();
evaluator.PrintNumberWithEvaluations();
}
私有静态树集generateNumbers(){
树集编号=新树集();
while(numbers.size()<生成的数字中的数字){
double number=Math.random();
if(numbernotalready存在(numbers,number)){
数字。添加(数字);
}
}
返回号码;
}
私有静态布尔数NOTALREADYEXISTING(树集数,双倍数){
return!number.contains(number);
}
公共空间评估(){
int i=0;
用于(双倍数字:数字){
numbersWithEvaluations.put(number,Evaluation.values()[i++]);
}
}
私有void printNumbersWithEvaluations(){
对于(Map.Entry numberWithEvaluation:numberwithevaluations.entrySet())
System.out.println(“结果:+numberWithEvaluation.getKey()+”=>“+numberWithEvaluation.getValue());
}
}

它不起作用。输出:结果1=0.4239293025911335评级不好结果2=0.1261568789767414评级不好结果3=1.7011063570530087评级好结果4=3.56420780341521评级很好这不是你要求的结果吗?我写了“评级很好”而不是“贴标签”在输出结果1=0.42147243618671204评分是坏结果2=0.3741348725996376评分是坏结果3=2.868010636944234评分是非常好的结果4=3.0166777412080044评分是优秀的,它是双重结果标记为坏,感谢你的回答我以前从未尝试过TreeSet,但它对我很有用,谢谢;)@andewor在可能的情况下总是更喜欢集合而不是数组;)此外,由于TreeSet忽略了重复项,因此我会处理值加倍的情况,请查看代码。
public class FourRandomNumbersEvaluator {

    private TreeSet<Double> numbers;

    private Map<Double,Evaluation> numbersWithEvaluations = new HashMap<Double,Evaluation>();

    private enum Evaluation {BAD, GOOD, VERY_GOOD, EXCELLENT}

    private static final int NUMBER_OF_GENERATED_NUMBERS = 4;


    public FourRandomNumbersEvaluator(TreeSet<Double> numbers) {
        if(numbers == null || numbers.size() != 4){
            throw new IllegalArgumentException("your have to provide exactly 4 numbers");
        }
        this.numbers = numbers;
    }

    public static void main(String[] args) {
        FourRandomNumbersEvaluator evaluator = new FourRandomNumbersEvaluator(generateNumbers());
        evaluator.evaluate();
        evaluator.printNumbersWithEvaluations();
    }

    private static TreeSet<Double> generateNumbers() {
        TreeSet<Double> numbers = new TreeSet<Double>();
        while(numbers.size() < NUMBER_OF_GENERATED_NUMBERS){
            double number = Math.random();
            if(numberNotAlreadyExisting(numbers, number)){
                numbers.add(number);
            }
        }
        return numbers;
    }

    private static boolean numberNotAlreadyExisting(TreeSet<Double> numbers, double number) {
        return !numbers.contains(number);
    }

    public void evaluate() {
        int i = 0;
        for(Double number : numbers){
            numbersWithEvaluations.put(number, Evaluation.values()[i++]);
        }
    }

    private void printNumbersWithEvaluations(){
        for(Map.Entry<Double,Evaluation> numberWithEvaluation : numbersWithEvaluations.entrySet())
        System.out.println("Result: "+  numberWithEvaluation.getKey() + " => " + numberWithEvaluation.getValue());
    }
}