我有ArrayList<String[]>
。
示例元素:
test,400000,30
因此Array列表包含这种类型的String数组。让我们在一个数组中将最后一个值除以中间值。所以它会是这样的。
30/400000 = 0.000075
我需要按照这些值(lastvalue / middlevalue)按升序对数组列表进行排序。
我该怎么做?
答案 0 :(得分:0)
您可以撰写自定义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());
注意:
此实现假定有效输入 - 所有数组(至少)三个元素长,第二个和第三个元素可解析为整数,第二个元素(我们除以)不为零。