Java 如何在不使用迭代器或集合的情况下迭代映射?

Java 如何在不使用迭代器或集合的情况下迭代映射?,java,collections,interface,map,Java,Collections,Interface,Map,在Java中,我试图在映射上迭代,以从map接口完成putAll()方法的实现。但是,我不能使用keyset(),entryset()或values()来执行此操作,这意味着我不能为此调用迭代器 我被难住了,不知道如何在没有迭代器的情况下进行 Map mp = new HashMap(); Set s = mp.keySet(); Iterator itr = s.iterator(); while(itr.hasNext()) {

在Java中,我试图在映射上迭代,以从
map
接口完成
putAll()
方法的实现。但是,我不能使用
keyset()
entryset()
values()
来执行此操作,这意味着我不能为此调用迭代器

我被难住了,不知道如何在没有迭代器的情况下进行

Map mp = new HashMap();
        Set s = mp.keySet();
        Iterator itr = s.iterator();
        while(itr.hasNext())
        {
            Object value = mp.get(itr.next());
        }
编辑:

我的工作就是在不使用这三种方法的情况下实现所有Map方法。如何在没有迭代器的情况下实现像
putAll()
这样的方法让我感到困惑

Map mp = new HashMap();
        Set s = mp.keySet();
        Iterator itr = s.iterator();
        while(itr.hasNext())
        {
            Object value = mp.get(itr.next());
        }
我不知道你为什么不能用它。实现是在上面的代码中完成的


我不知道你为什么不能用它。实现是在上面的代码中完成的。

如果
Map
SortedMap
,则可以执行以下操作:

SortedMap<K, V> partialMap = wholeMap;
while (!partialMap.isEmpty()) {
  K key = partialMap./* left as an exercise to the reader */;
  partialMap = partialMap.tailMap(
      key,
      false // exclusive, so does not include key
      );
}
SortedMap partialMap=wholeMap;
而(!partialMap.isEmpty()){
K键=partialMap./*留给读者作为练习*;
partialMap=partialMap.tailMap(
钥匙
false//独占,因此不包括密钥
);
}

您可以在中找到
tailMap
的说明。

如果
Map
SortedMap
,则可以执行以下操作:

SortedMap<K, V> partialMap = wholeMap;
while (!partialMap.isEmpty()) {
  K key = partialMap./* left as an exercise to the reader */;
  partialMap = partialMap.tailMap(
      key,
      false // exclusive, so does not include key
      );
}
SortedMap partialMap=wholeMap;
而(!partialMap.isEmpty()){
K键=partialMap./*留给读者作为练习*;
partialMap=partialMap.tailMap(
钥匙
false//独占,因此不包括密钥
);
}
您可以在HashMap代码的。

中找到
尾图的解释:

for (Iterator<? extends Map.Entry<? extends K, ? extends V>> i = m.entrySet().iterator(); i.hasNext(); ) {
            Map.Entry<? extends K, ? extends V> e = i.next();
            put(e.getKey(), e.getValue());
        }
for(迭代器来自HashMap代码:

for (Iterator<? extends Map.Entry<? extends K, ? extends V>> i = m.entrySet().iterator(); i.hasNext(); ) {
            Map.Entry<? extends K, ? extends V> e = i.next();
            put(e.getKey(), e.getValue());
        }

for(迭代器)为什么你不能使用这些方法中的任何一种?是你的老师不允许你这么做的吗?
keySet()
entrySet()
values()
是在事先不知道键的情况下访问内容的唯一方法。或者这是一个诡计问题(回答:你不能)或者你还没有提供一些其他信息。另外,你应该添加标签。-除了你在
Map
界面中提到的方法之外,没有其他方法可以迭代。你确定你没有误解你的任务吗?@so1201431嘲讽性?你在没有作业的情况下发布这样的问题是不礼貌的ag.为什么你不能使用这些方法中的任何一种?是你的老师不允许你使用的吗?
keySet()
entrySet()
values()
是在事先不知道键的情况下访问内容的唯一方法。这是一个诡计问题(回答:你不能)或者你还没有提供一些其他信息。另外,你应该添加标签。-除了你在
Map
界面中提到的方法之外,没有其他方法可以迭代。你确定你没有误解你的任务吗?@so1201431嘲讽性?你在没有作业的情况下发布这样的问题是不礼貌的ag.-1违反了问题中的明确限制。也没有泛型:(-1)违反了问题中的明确限制。也没有泛型:-(