我有一个ArrayList<String[]>
。
示例元素:
test,400000,30
因此,“数组”列表包含这种类型的字符串数组。让我们将一个数组中的最后一个值除以中间值。所以会是这样。
30/400000 = 0.000075
我需要按照这些值(lastvalue / middlevalue)的升序对数组列表进行排序。
我怎样才能做到这一点?
您可以编写您的自定义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());
注意:
此实现假定输入有效-所有数组(至少)长三个元素,第二个和第三个元素可解析为整数,并且第二个元素(我们除以)不为零。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句