第一點 - Map
不能有與同一個鍵關聯的兩個不同的值。如果你真的需要做到這一點,你可以製作一張列表,像這樣:
Map<Integer, List<Integer>> map = new TreeMap<Integer, List<Integer>>();
下面的代碼遍歷地圖的鑰匙,並把相關的值的列表:
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
List<Integer> list = new ArrayList<Integer>();
for (Integer key : map.keySet()) {
list.add(map.get(key));
}
做同樣的事情比較正確的做法:
Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
List<Integer> list = new ArrayList<Integer>(map.values());
如果你真的需要映射到相同的密鑰多個值,試試這個:
Map<Integer, List<Integer>> map = new TreeMap<Integer, List<Integer>>();
for (Map.Entry<Integer, List<Integer>> entry : map.entrySet()) {
System.out.println("Map values for key \"" + entry.getKey() + "\":");
for (Integer value : entry.getValue() == null ? new ArrayList<Integer>() : entry.getValue()) {
System.out.print(value + " ");
}
System.out.println();
}
該代碼只是將所有映射鍵及其值寫入System.out
。
欲瞭解更多信息,請嘗試閱讀Map Javadoc和List Javadoc。
這對我來說不像Java。 –
這不是java,只是一個算法 – melkir
你真的只是要求教程嗎? – csmckelvey