基本上,我有一个arraylist声明如下:
private ArrayList<HashMap<String, String>> songsList =
new ArrayList<HashMap<String, String>>();
现在我想要做的是,对于每个键,我想给出两个值字段。可以吗?
其次,我想根据值对对键值对进行排序。那怎么能实现呢?
答案 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创建具有所需值的类。并使用类作为键的值。