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