1
A
回答
2
這是一個非常天真的例子。
比方說,你有一個HashMap
看起來像以下:
public Map<Integer, String> map = new HashMap<Integer, String>();
你是說,你要創建一個子表,所以我會假設你想有一個List<String>
作爲輸出:
public List<String> getKeyRange(Integer start, Integer end) {
List<String> list = new ArrayList<String>();
for (int i = start; i < end; i++) {
String value = map.get(i); //Forgot that string can be null in Java
if (value != null)
list.add(value);
}
return list;
}
-1
<K, V> List<V> getAll(Map<K, V> map, Collection<K> keys)
{
List<V> values = new ArrayList<V>(keys.size());
for(K key : keys)
{
values.add(map.get(key));
}
return values;
}
+0
我想你誤解了這個問題。您可以直接調用'map.values()'來獲取地圖中的所有值。順便說一句,不是downvoter。 –
+0
他並不想要所有的價值,只有一些。如果OP可以將他的「範圍」定義爲一個集合,這將會滿足他的需要。 – MikeFHay
3
正如我在評論中說,我也不會去的HashMap
,但對於一個SortedMap
代替(一個TreeMap
每例),其中有一個subMap
方法:
subMap(K fromKey, K toKey)
返回此映射,其鍵的範圍從 fromKey(包括)到toKey,獨佔的所述部分的視圖。
SortedMap<String, String> m = new TreeMap<>();
m.put("aaa","1");
m.put("bbb","2");
m.put("ccc","3");
m.put("ddd","4");
m.put("eee","5");
SortedMap<String, String> subM = m.subMap("a","d");
System.out.println(subM);
輸出:
{aaa=1, bbb=2, ccc=3}
如果您只需要值的列表,請使用values()
方法。
相關問題
- 1. 獲取散列值
- 2. 獲取散列圖的某個部分
- 3. 獲取散列表中的所有值
- 4. Java - 如何遍歷散列表列表的散列圖
- 5. 散列表和散列表
- 6. 獲取散列表中密鑰列表的時間複雜度?
- 7. 從列表中獲取子列表
- 8. import.io json API:獲取列的子列表
- 9. 獲取所有子序列的列表
- 10. 獲取錨索引/散列
- 11. 無法獲取md5散列
- 12. 獲取父多維散列
- 13. 獲取有序散列
- 14. 獲取與子列表
- 15. 獲取列表視圖行的列
- 16. C#散列表與C++散列表
- 17. 在散列發生變化後獲取最後一個散列
- 18. 如何使用嵌套散列獲取多個散列鍵?
- 19. 獲取Facebook電子郵件/電子郵件散列
- 20. 從地圖獲取列表?
- 21. Java流 - 將列表分類到列表的散列圖
- 22. 散列散列的紅寶石散列
- 23. AIR從StageWebView獲取LocationChangeEvent.LOCATION_CHANGING的散列值
- 24. 獲取父類的散列碼
- 25. mySQL:獲取每一行的散列值?
- 26. 獲取Google文檔的散列?
- 27. ios如何獲取子視圖列表中的視圖?
- 28. 獲取子公司netsuite的列表
- 29. 獲取因子值的列表R
- 30. 獲取wordpress中舊帖子的列表
這個元素範圍的語義是什麼? –
對於'HashMap',一個鍵只能有一個值。 – rgettman
@SotiriosDelimanolis HashMap的值與另一個列表中的值相同。 – user2051347