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());
}
}