0

私はarraylistのarraylistを持っています、各内部arraylistには2つの値が含まれ、最初は整数で、2番目は文字列なので、基本的には次のようになります:{5、いくつかのテキスト}、{12、いくつかのテキスト}、{3、さらに多くのテキスト}など、私がやりたいのは、これを取得して、最大の整数から最小の整数の降順で並べ替えることです。したがって、前の例は次のようになります。{12、もう少しテキスト}、{5、いくつかtext}、{3、さらに多くのtext}、どんな助けでも事前に感謝します

4

2 に答える 2

6

データ構造は、実際には「マップ」のように聞こえます。たぶん、データ構造、特にコレクションインターフェイスとクラスを調べる必要があります...

それでも自分が持っているものが「リスト」であると思う場合は、適切な種類のコンパレータまたは比較可能でCollections.sort操作を行う必要があります。

リストが正しい場合のデータ構造の解決策は次のとおりです。

import java.util.ArrayList;
import java.util.Collections;

public class InnerObject implements Comparable<InnerObject> {
    Integer index;
    String  name;

    public InnerObject(Integer index, String name) {
        this.index = index;
        this.name = name;
    }

    @Override
    public int compareTo(InnerObject other) {
        return index.compareTo(other.index);
    }

    @Override
    public String toString() {
        return "{" + index + "," + name + "}";
    }

    public static void main(String[] args) {
        ArrayList<InnerObject> list = new ArrayList<InnerObject>();
        list.add(new InnerObject(666, "devil"));
        list.add(new InnerObject(1, "one"));
        list.add(new InnerObject(10, "ten"));

        System.out.println("list before order: " + list);

        Collections.sort(list);

        System.out.println("list after order: " + list);

    }   
}
于 2012-05-22T13:37:16.013 に答える
0

内部リストに2つのプロパティを持つ1つのオブジェクトを含めることができればより良いでしょう。このオブジェクトは、並べ替えに使用できます。

于 2012-05-22T13:35:43.590 に答える