Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—对数组中的数字进行排序,并对字符串数组保持该顺序_Java_Arrays_Sorting_Numbers - Fatal编程技术网

Java—对数组中的数字进行排序,并对字符串数组保持该顺序

Java—对数组中的数字进行排序,并对字符串数组保持该顺序,java,arrays,sorting,numbers,Java,Arrays,Sorting,Numbers,Java问题:我有一个双精度数组和一个字符串数组,每个长度为26。我希望double数组(称为weights)在执行Arrays.sort()函数时,字符串以相同的方式排序。 示例: 之前: 姓名:鲍勃|体重:3.6 姓名:史蒂夫|体重:11.0 姓名:托马斯|体重:2.2 之后: 姓名:托马斯|体重:2.2 姓名:鲍勃|体重:3.6 姓名:史蒂夫|体重:11.0 我已经考虑了一段时间,但我不知道该怎么做。创建一个类(例如,Person)。执行可比较的。给它两个字段,name和weight。填充

Java问题:我有一个双精度数组和一个字符串数组,每个长度为26。我希望double数组(称为weights)在执行
Arrays.sort()函数时,字符串以相同的方式排序。
示例:
之前:
姓名:鲍勃|体重:3.6
姓名:史蒂夫|体重:11.0
姓名:托马斯|体重:2.2

之后:
姓名:托马斯|体重:2.2
姓名:鲍勃|体重:3.6
姓名:史蒂夫|体重:11.0

我已经考虑了一段时间,但我不知道该怎么做。

创建一个类(例如,
Person
)。执行
可比较的
。给它两个字段,
name
weight
。填充
人的数组
,然后调用
数组。排序
。从
Person
开始,可能看起来像

class Person implements Comparable<Person> {
    public Person(String name, double weight) {
        this.name = name;
        this.weight = weight;
    }

    private String name;
    private double weight;

    @Override
    public int compareTo(Person o) {
        int r = Double.compare(this.weight, o.weight);
        if (r != 0) {
            return r;
        }
        return this.name.compareTo(o.name);
    }

    @Override
    public String toString() {
        return String.format("Name: %s | Weight: %.1f", name, weight);
    }
}
哪些输出(按要求)

创建一个类(例如,
Person
)。执行
可比较的
。给它两个字段,
name
weight
。填充
人的数组
,然后调用
数组。排序
。从
Person
开始,可能看起来像

class Person implements Comparable<Person> {
    public Person(String name, double weight) {
        this.name = name;
        this.weight = weight;
    }

    private String name;
    private double weight;

    @Override
    public int compareTo(Person o) {
        int r = Double.compare(this.weight, o.weight);
        if (r != 0) {
            return r;
        }
        return this.name.compareTo(o.name);
    }

    @Override
    public String toString() {
        return String.format("Name: %s | Weight: %.1f", name, weight);
    }
}
哪些输出(按要求)


创建一个包含字符串和双精度的类,然后创建一个字符串和双精度的数组,并根据双精度对其进行排序。

创建一个包含字符串和双精度的类,然后创建一个字符串和双精度的数组,并根据双精度对其进行排序。

您能以代码形式给我一个示例吗?@МởṇṏсĺḕMᾶṇ 看看这里:你能给我一个代码形式的例子吗?@МởṇṏсĺḕMᾶṇ 请看这里:
Before Sorting
Name: Bob | Weight: 3.6
Name: Steve | Weight: 11.0
Name: Thomas | Weight: 2.2
After Sorting
Name: Thomas | Weight: 2.2
Name: Bob | Weight: 3.6
Name: Steve | Weight: 11.0