基本上,我有一个声明如下的arraylist:
private ArrayList<HashMap<String, String>> songsList =
new ArrayList<HashMap<String, String>>();
现在我想做的是,对于每个键,我想给出两个值字段。能做到吗??
其次我想根据值对对键值对进行排序。那么如何实现呢?
那是很多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);
您可以为您的排序问题实现可比较的接口。对于地图中的值具有多个值,请使用 getter 和 setter 创建一个具有所需值的类。并将类用作键的值。