Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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中迭代一个映射有多少种方法?如果已经有for循环,为什么要迭代mai?_Java - Fatal编程技术网

在java中迭代一个映射有多少种方法?如果已经有for循环,为什么要迭代mai?

在java中迭代一个映射有多少种方法?如果已经有for循环,为什么要迭代mai?,java,Java,可以使用myMap.entrySet().iterator()中的迭代器来迭代SortedMap。但是这个迭代器是否保留了排序后的映射对象的顺序 SortedMap接口没有自己的方法来遍历条目。迭代按顺序排列条目的标准方式是什么?要回答您的主要问题,是。通过入口集进行迭代将保持顺序 您可以使用Java增强的foreach循环: for(final Entry<K,V> entry : myMap.entrySet(()) { //do something with entry

可以使用myMap.entrySet().iterator()中的迭代器来迭代
SortedMap
。但是这个迭代器是否保留了排序后的映射对象的顺序


SortedMap接口没有自己的方法来遍历条目。迭代按顺序排列条目的标准方式是什么?

要回答您的主要问题,。通过
入口集
进行迭代将保持顺序

您可以使用Java增强的foreach循环:

for(final Entry<K,V> entry : myMap.entrySet(()) {
    //do something with entry
}
for(最终条目:myMap.entrySet(()){
//对入口做些什么
}
可以使用myMap.entrySet().iterator()中的迭代器对SortedMap进行迭代。但该迭代器是否保留排序后的map对象的顺序

是的,见:

迭代排序映射的集合视图(由entrySet、keySet和values方法返回)时,会反映此顺序


SortedMap接口没有自己的方法来迭代条目。迭代有序条目的标准方法是什么

通常的技巧是使用
entrySet()
,并迭代那些
Map.Entry
对象。例如:

for (Map.Entry<K,V> entry : theMap.entrySet()) {
    K entryKey = entry.getKey();
    V entryValue = entry.getValue();
    // do whatever with them
}
for(Map.Entry:theMap.entrySet()){
K entryKey=entry.getKey();
V entryValue=entry.getValue();
//对他们做什么都行
}

Set不保留顺序,只列出保留顺序。@Sam由
SortedMap\entrySet()
返回的
Set
有一个顺序。Sam,这并不完全正确。Set接口并不暗示其子类的任何迭代顺序,但SortedSet的实现者确实暗示了一个排序的迭代顺序。有关更多信息,请参阅