Java 像c++;地图
Java中是否有任何容器允许我们按键使用迭代器,并且可以转到下一个元素和上一个元素(如c++中的映射) p、 对不起我的英语你可以看看 我认为可以使用迭代器遍历贴图的键集,以实现所需的内容。此处的示例代码: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
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(){
// ...
}
也可以从开始迭代到某个条目,或从某个条目迭代到结束。请查看以下方法:
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
)