0

基本上,我有一个声明如下的arraylist:

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

现在我想做的是,对于每个键,我想给出两个值字段。能做到吗??

其次我想根据值对对键值对进行排序。那么如何实现呢?

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 回答