Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.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 像c++;地图_Java_C++_Map_Iterator - Fatal编程技术网

Java 像c++;地图

Java 像c++;地图,java,c++,map,iterator,Java,C++,Map,Iterator,Java中是否有任何容器允许我们按键使用迭代器,并且可以转到下一个元素和上一个元素(如c++中的映射) p、 对不起我的英语你可以看看 我认为可以使用迭代器遍历贴图的键集,以实现所需的内容。此处的示例代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { Map

Java中是否有任何容器允许我们按键使用迭代器,并且可以转到下一个元素和上一个元素(如c++中的映射)

p、 对不起我的英语

你可以看看

我认为可以使用迭代器遍历贴图的键集,以实现所需的内容。此处的示例代码:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Test {

public static void main(String[] args) {

    Map<Integer, String> map = new HashMap<Integer, String>() {
        {
            put(1, "One");
            put(2, "Two");
            put(3, "Three");
            put(4, "Four");
            put(5, "Five");
        }
    };


    Iterator<Integer> iter = map.keySet().iterator();

    while(iter.hasNext()){
        System.out.println(iter.next());
    }
}
import java.util.HashMap;
导入java.util.Iterator;
导入java.util.Map;
公开课考试{
公共静态void main(字符串[]args){
Map Map=newhashmap(){
{
付诸表决(1,“一”);
付诸表决(2,“两”);
付诸表决(3,“三”);
付诸表决(4,“4”);
付诸表决(5,“5”);
}
};
迭代器iter=map.keySet().Iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
}
A最接近。最常用的实现是

NavigableMap包含许多方法,可以按排序顺序对条目进行迭代。第一个循环迭代所有元素,而第二个循环仅限于子范围

NavigableMap<String, Integer> map = ...;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
    // ...
}
for (Map.Entry<String, Integer> entry
   : map.subMap("bar", "foo").entrySet()) {
    // ...
}
NavigableMap=。。。;
对于(Map.Entry:Map.entrySet()){
// ...
}
对于(Map.Entry)
:map.subMap(“bar”、“foo”).entrySet(){
// ...
}
也可以从开始迭代到某个条目,或从某个条目迭代到结束。请查看以下方法:

在C++中,迭代器也用于许多其他用例。java迭代器非常不同,不能与变异操作结合使用。在很多情况下,必须使用查找代替迭代。例如,以下方法返回前一个和下一个条目(按排序顺序),如果使用了当前条目的键:


LinkedList类有一个listIterator方法,它不仅可以帮助您在两个方向上遍历
LinkedList
,还可以遍历任何
List
实现……问题是,
Map
s不是
List
Sye,只是以它为例。C++的
Map
能保证任何迭代顺序吗?这将有一个问题n影响here@fge:是。
std::map
根据给定的排序标准(默认为“小于”比较)按键排序的顺序迭代好的,@nosid的答案符合@fge可能的重复:虽然也有
std::unordered_-map
,它是基于散列的,没有保证的迭代顺序。(OP说“maps”不是
std::map
,所以他可能也包括
std::unordered_-map