0

基本的に、私は次のように宣言された配列リストを持っています:

private ArrayList<HashMap<String, String>> songsList = 
                             new ArrayList<HashMap<String, String>>();

今私がやりたいのは、キーごとに2つの値フィールドを指定することです。できますか?

次に、値のペアに従ってキーと値のペアを並べ替えます。では、どうすればそれを達成できるでしょうか?

4

2 に答える 2

1

それはたくさんのStringオブジェクトです。Object文字列の複雑なコレクションではなく、を使用してデータ構造をカプセル化することを検討しましたか? たとえば、マップ キーが曲であるとします。

public Song implements Comparable<Song> {
    private String title;
    private String artist;
    private String album;

    public Song(String title, String artist, String album) {
       ...
    }

    public int compareTo(Song s) {
        // sorting logic
    }

    ... // getters, setters, equals & hashCode
}

次に、曲のリストを作成します。

List<Song> songs = new ArrayList<Song>();
songs.add(new Song("Dancing Queen", "Abba", "Arrival"); // I had to find this on Wikipedia
...

次に、それらを並べ替えます。

Collections.sort(songs);
于 2012-10-08T12:36:28.323 に答える
0

あなたのソート問題に匹敵するインターフェースを実装できます。また、マップ内の値に複数の値を設定するには、getter と setter を使用して必要な値を持つクラスを作成します。そして、キーに対する値としてクラスを使用します。

于 2012-10-08T12:39:49.523 に答える