Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取哈希映射的子列表_Java_Hashmap - Fatal编程技术网

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可以将他的“范围”定义为一个集合,这将满足他的需要。