我從在我需要在解析排序的JSON字符串創建的地圖。的Java從某個指數
如果在索引6(7鍵)的一個關鍵,我想迭代地圖以便能夠從該鍵迭代到地圖的末尾,並使用這些鍵/值對執行我需要的處理。
有沒有辦法做到這一點?
我從在我需要在解析排序的JSON字符串創建的地圖。的Java從某個指數
如果在索引6(7鍵)的一個關鍵,我想迭代地圖以便能夠從該鍵迭代到地圖的末尾,並使用這些鍵/值對執行我需要的處理。
有沒有辦法做到這一點?
A Map
通常不會維護密鑰的順序。您需要使用
NavigableMap
,例如TreeMap
。如果您的鑰匙具有自然順序,則最好。LinkedHashMap
這是一個保留插入順序的地圖實現。例片段(LinkedHashMap的):
Map<Integer, String> map = new LinkedHashMap<Integer, String>();
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
map.put(6, "six");
map.put(7, "seven");
map.put(8, "eight");
map.put(9, "nine");
int index = 0;
for (Integer key : map.keySet()) {
if (index++ < 6)
continue;
System.out.println(map.get(key));
}
// Prints:
// seven
// eight
// nine
例片段(TreeMap中):
TreeMap<Integer, String> map = new TreeMap<Integer, String>();
map.put(5, "five");
map.put(6, "six");
map.put(7, "seven");
map.put(8, "eight");
map.put(9, "nine");
for (Integer key : map.tailMap(6).keySet())
System.out.println(map.get(key));
// Prints
// six
// seven
// eight
// nine
The Map interface doesn't allow direct access by index. The best you can do is something like:
Map m;
....
int count 0;
for(object el : m){
if(count++ < 6) continue;
//do your stuff here
}
這是假設你的Map實現排序 - 否則枚舉時不保證順序。
根據底層的地圖實現,訂單在解析時已經丟失。
LinkedHashMap是您所追隨的野獸 - 鏈接部分爲您提供可預測的迭代次序。
LinkedHashMap正是我所需要的,並且索引解析完美無缺! – pm13