我有一个ArrayList<String[]>
.
示例元素:
test,400000,30
所以Array列表包含这种类型的String数组。让我们将一个数组中的最后一个值除以中间值。所以会是这样的。
30/400000 = 0.000075
我需要按这些值(最后一个值/中间值)按升序对数组列表进行排序。
我怎样才能做到这一点?
最佳答案
您可以编写您的自定义Comparator
:
public class StringArrayComparator implements Comparator<String[]> {
@Override
public int compare(String[] a, String[] b) {
double aVal = Double.valueOf (a[2]) / Double.valueOf (a[1]);
double bVal = Double.valueOf (b[2]) / Double.valueOf (b[1]);
return Double.compare(aVal, bVal);
}
}
然后将其与 Collections.sort
一起使用:
List<String[]> myList = /* some value */;
Collections.sort(myList, new StringArrayComparator());
注意:
此实现假设有效输入 - 所有数组(至少)都是三个元素长,第二个和第三个元素可解析为整数,并且第二个元素(我们除以的)不为零。
关于java - java中对String[]数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26440658/