根据hashmap的值字段对hashmap的arraylist进行排序

时间:2012-10-08 12:25:13

标签: java arraylist hashmap sorting

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

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

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

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您可以为您的排序问题实现类似的界面。并且为了在地图中为值赋予多个值,请使用getter和setter创建具有所需值的类。并使用类作为键的值。