基本上排序的HashMap的ArrayList,我有一個ArrayList的聲明如下:根據HashMap中的值字段
private ArrayList<HashMap<String, String>> songsList =
new ArrayList<HashMap<String, String>>();
現在
什麼,我想要做的是,對每個關鍵我想舉兩個值字段。可以這樣做嗎?
其次,我想根據值對對鍵值對進行排序。那麼如何實現?
基本上排序的HashMap的ArrayList,我有一個ArrayList的聲明如下:根據HashMap中的值字段
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創建一個具有所需值的類。並且將這個班級作爲一個關鍵的價值。
您是否閱讀過Map和Collection文檔? – Blackbelt