首页 > 解决方案 > 如何为另一个数组列表复制 Collection.sort

问题描述

我想对arraylist(string)hasil进行排序,从大值到小值,但是我的arraylist(string)solusi没有以与arraylist(string)相同的顺序获得位置。

float pa = ma * 100;
    String namaGangguan = SQLiteHelper.getInstance(this).getGangguan(key).getNama();
    Solusi = SQLiteHelper.getInstance(this).getGangguan(key).getSolusi();
    hasil.add((int)pa + " % " + namaGangguan );
    solusi.add(Solusi);
}

Collections.sort(hasil, new Comparator<String>() {

    @Override
    public int compare(String o1, String o2) {
        // null check needed?
        int diff = getIntValue(o2) - getIntValue(o1);
        if (diff == 0) return o1.compareTo(o2);
        return diff;
    }

    int getIntValue(String str) {
        if (str == null) return 0;
        int value = 0;
        int indx = 0;
        while (indx < str.length() && Character.isDigit(str.charAt(indx))) {
            value = value * 10 + (str.charAt(indx) - '0');
            indx++;
        }
        return value;
    }
}

计划是我想制作一个arraylist(string)hasil,作为listview和arraylist(string)solusi,作为listview中的一个动作点击。如何均衡hasil和solusi这两个数组的位置?谢谢你。

标签: javaandroidarraylistcollections

解决方案


排序数组

 Arrays.sort(stringarray, new Comparator<File>() {
                @RequiresApi(api = Build.VERSION_CODES.KITKAT)
                @Override
                public int compare(String o1, String o2) {
                    return Integer.compare(Integer.parseInt(o1), Integer.parseInt(o2));
                }
            });

在上面的代码之后使用数组(对于大值到小值,)

Collections.reverse(integerList);

推荐阅读