我在 android 项目中有一个逗号分隔的字符串数组,如下所示:
1,orange,$5
2,apple,$6
3,banana,$8
我想按字段对数组进行排序,比如按第二个字段苹果、香蕉、橙...
处理此问题的最佳数据结构或算法是什么?
最佳答案
使用自定义比较器对数组进行排序:
import java.util.Arrays;
import java.util.Comparator;
class Fruits {
public static void main(final String[] args) {
final String[][] data = new String[][] {
new String[] { "1", "orange", "$5" },
new String[] { "2", "apple", "$6" },
new String[] { "3", "banana", "$8" } };
Arrays.sort(data, new Comparator<String[]>() {
@Override
public int compare(final String[] entry1, final String[] entry2) {
final String fruit1 = entry1[1];
final String fruit2 = entry2[1];
return fruit1.compareTo(fruit2);
}
});
for (final String[] s : data) {
System.out.println(s[0] + " - " + s[1] + " - " + s[2]);
}
}
}
输出:
2 - apple - $6
3 - banana - $8
1 - orange - $5
您可以阅读更多内容:
http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
关于java - 如何根据一列对一维(或二维)数组(多维)进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29430608/