按项子串排序数组

时间:2011-09-05 11:54:52

标签: java android arrays sorting

我的数组包含如下项目:

  

“ITEM_NAME_1 :: ITEM_DESCRIPTION :: ITEM_VALUE”

(因此数组中的每个项目都包含单独的数据,稍后将在“::”处拆分)

我的问题是,如何通过“ITEM_VALUE”(这是一个数值)对数组进行排序,我尝试了以下操作,没有运气:

Arrays.sort(inputArr, new Comparator<String>() {
    @Override
    public int compare(String entry1, String entry2) {
        String[] entry1Split = entry1.split("::");
        String[] entry2Split = entry2.split("::");

        return entry1Split[2].compareTo(entry2Split[2]);
    }
});

2 个答案:

答案 0 :(得分:2)

你应该可以这样做:

Arrays.sort(inputArr, new Comparator<String>() {
    @Override
    public int compare(String entry1, String entry2) {
        String[] entry1Split = entry1.split("::");
        String[] entry2Split = entry2.split("::");

        return Double.valueOf(entry1Split[2]).compareTo(Double.valueOf(entry2Split[2]));
    }
});

即,如果您的数值是浮点值。如果它们是整数,则可以使用Integer.valueOf代替Double.valueOf

答案 1 :(得分:1)

你可能想要考虑解析数组中的字符串并为每个条目创建一个对象 - 比如

class Item {

    String value;
    String description
    Integer value;
}

这样你每个对象只会解析一次字符串,而不是每次排序算法需要进行比较时多次解析。