我有一個ArrayList<String[]>
。在java中排序字符串[]數組列表
示例元素:
test,400000,30
以使陣列列表包含這種類型的字符串陣列。讓一個數組中的中間值的最後一個值。所以它會是這樣的。
30/400000 = 0.000075
我需要按這些值(lastvalue/middlevalue)按升序排列數組列表。
我該怎麼做?
我有一個ArrayList<String[]>
。在java中排序字符串[]數組列表
示例元素:
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());
注:
此實現假定有效輸入 - 所有的陣列(至少)三個元素長,第二個和第三個元素可以解析爲整數,第二個元素(我們除以)不爲零。
[用Java排序字符串數組]可能的副本(http://stackoverflow.com/questions/12986386/sorting-an-array-of-strings-with-java) – 2014-10-18 14:16:04
@justin Skiles。這不是該問題的重複。該問題是關於字符串數組排序和我的一個關於字符串[]數組列表排序。 – woof 2014-10-18 14:18:57