gpt4 book ai didi

java - 在JAVA中对两个或多个数组进行排序

转载 作者:行者123 更新时间:2023-11-29 09:56:54 26 4
gpt4 key购买 nike

我想根据它们的数值对两个数组进行排序。例如

apple[]  = [apples, green, 9180, 16.19];
orange[] = [oranges, orange color, 9180, 25.18];

我想根据数组中的第 3 个值对它进行排序,即 16.19

我该怎么做?

注意数组声明仅用于说明目的。

结果必须是这样的:

String[] apples =     [apples, green, 9180, 16.19];
String[] oranges = [oranges, orange color, 9180, 25.18];
String[] grapes = [grapes, green, 9180, 35.16]
String[] strawberry = [strawberries, red, 9180, 45.36]

每一行都是一个单独的数组。它必须根据最后一个数字升序排序即16.19、25.18、35.16

数组有四个字段[apples, green, 9180, 16.19];苹果:水果名称;绿色:水果的颜色; 9180:农场密码; 16.19:水果产量。我必须根据水果的产量对这些进行分类。希望我清楚。

最佳答案

我允许自己假设您没有四个名为 oranges 的变量, apples , strawberriesgrapes .如果这样做,请在排序前将它们放入一个数组中。

Comparable 的数组进行排序的示例代码小号:

class a{

public static void main(String[]args){

final int column = 3;
Comparable[][] a = new Comparable[][]{
{"oranges", "orange color", 9180, 25.18},
{"apples", "green", 9180, 16.19},
{"strawberries", "red", 9180, 45.36},
{"grapes", "green", 9180, 35.16}
};

java.util.Arrays.sort(a,
new java.util.Comparator<Comparable[]>(){
public int compare(Comparable[]a,Comparable[]b){
return a[column].compareTo(b[column]);
}
});

for (Comparable[] c : a)
System.out.println(java.util.Arrays.toString(c));

}

}

输出:

[apples, green, 9180, 16.19]
[oranges, orange color, 9180, 25.18]
[grapes, green, 9180, 35.16]
[strawberries, red, 9180, 45.36]

如果您想要更通用的东西,您可以定义一个数组比较器,它将比较列作为其构造函数中的参数(参见 updated example):

class ArrayComparator implements java.util.Comparator<Comparable[]>{
private int col;
public ArrayComparator(int col){
this.col = col;
}
public int compare(Comparable[] o1, Comparable[] o2){
return o1[col].compareTo(o2[col]);
}
};

关于java - 在JAVA中对两个或多个数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com