Java 获取哈希映射的子列表
假设我有一个带有键Java 获取哈希映射的子列表,java,hashmap,Java,Hashmap,假设我有一个带有键String的hashmap,值也是一个String。我想为某个键元素范围提取映射的值的子列表(与列表函数类似) 这是如何实现的?List getAll(地图、集合键) <K, V> List<V> getAll(Map<K, V> map, Collection<K> keys) { List<V> values = new ArrayList<V>(keys.size()); for(K
String
的hashmap
,值也是一个String
。我想为某个键
元素范围提取映射的值
的子列表(与列表
函数类似)
这是如何实现的?List getAll(地图、集合键)
<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;
}
{
列表值=新的ArrayList(keys.size());
用于(K键:键)
{
add(map.get(key));
}
返回值;
}
列出所有(地图、集合键)
{
列表值=新的ArrayList(keys.size());
用于(K键:键)
{
add(map.get(key));
}
返回值;
}
这里有一个非常简单的例子
假设您有一个如下所示的HashMap
:
public Map<Integer, String> map = new HashMap<Integer, String>();
publicmap=newhashmap();
您的意思是要创建一个子列表,因此我假设您想要一个列表
作为输出:
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;
}
public List getKeyRange(整数开始,整数结束){
列表=新的ArrayList();
for(int i=start;i
这里有一个非常简单的例子
假设您有一个如下所示的HashMap
:
public Map<Integer, String> map = new HashMap<Integer, String>();
publicmap=newhashmap();
您的意思是要创建一个子列表,因此我假设您想要一个列表
作为输出:
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;
}
public List getKeyRange(整数开始,整数结束){
列表=新的ArrayList();
for(int i=start;i
正如我在评论中所说,我不会选择HashMap
,而是选择SortedMap
(每个示例为TreeMap
),它有一个subMap
方法:
subMap(K fromKey, K toKey)
返回此映射中关键帧范围为的部分的视图
从钥匙,包括在内,到托克伊,独家
如果您只需要值列表,请使用
values()
方法。正如我在评论中所说的,我不会选择HashMap
,而是选择SortedMap
(每个示例为TreeMap
),它具有subMap
方法:
subMap(K fromKey, K toKey)
返回此映射中关键帧范围为的部分的视图
从钥匙,包括在内,到托克伊,独家
如果您只需要值列表,请使用
values()
方法。@rgetman OP可能表示映射到键范围的所有值?您需要迭代键列表,并分别查找每个键。您希望输出是值的列表还是键/值的Map
?所有SortedMap
都有一个subMap
方法,你应该仔细研究一下。你在找吗?@rgetman OP可能意味着所有映射到键范围的值?你需要在键列表上迭代,然后分别查找每个键。您希望输出是值的列表还是键/值的Map
?所有SortedMap
都有一个subMap
方法,您应该对此进行研究。您是在寻找一个值吗?我想您误读了这个问题。您可以直接调用map.values()
来获取映射中的所有值。顺便说一句,他不想要所有的价值观,只想要一些。如果OP能将他的“范围”定义为一个集合,这将满足他的需要。我想你误解了这个问题。您可以直接调用map.values()
来获取映射中的所有值。顺便说一句,他不想要所有的价值观,只想要一些。如果OP可以将他的“范围”定义为一个集合,这将满足他的需要。