Java如何迭代映射<;字符串,设备>;

Java如何迭代映射<;字符串,设备>;,java,iterator,Java,Iterator,我有一个自定义映射,其中Device是名为Device的类的实例 devices = new HashMap<String, Device>(); devices=newhashmap(); 我尝试了StackOverflow上建议的几个迭代器和for循环,但它们似乎都产生了错误,我不知道为什么 示例错误: 及 你能试试这个吗: HashMap<String, Device> devices = new HashMap<String, Device>()

我有一个自定义映射,其中Device是名为Device的类的实例

devices = new HashMap<String, Device>();
devices=newhashmap();
我尝试了StackOverflow上建议的几个迭代器和for循环,但它们似乎都产生了错误,我不知道为什么

示例错误:

你能试试这个吗:

HashMap<String, Device> devices = new HashMap<String, Device>();

// do stuff to load devices

Device currentDevice;
for (String key : devices.keySet()) {

    currentDevice = devices.get(key);
    // do stuff with current device

}
HashMap devices=newhashmap();
//做一些事情来加载设备
器件电流器件;
for(字符串键:devices.keySet()){
currentDevice=devices.get(键);
//使用当前设备进行操作
}
你能试试这个吗:

HashMap<String, Device> devices = new HashMap<String, Device>();

// do stuff to load devices

Device currentDevice;
for (String key : devices.keySet()) {

    currentDevice = devices.get(key);
    // do stuff with current device

}
HashMap devices=newhashmap();
//做一些事情来加载设备
器件电流器件;
for(字符串键:devices.keySet()){
currentDevice=devices.get(键);
//使用当前设备进行操作
}

看起来
设备的声明不正确。应该是:

Map<String, Device> devices;
Map设备;

不是原始(“已擦除”)类型,
Map
。现代编译器应该为您提供使用原始类型的警告。注意编译器警告。

看起来
设备的声明不正确。应该是:

Map<String, Device> devices;
Map设备;

不是原始(“已擦除”)类型,
Map
。现代编译器应该为您提供使用原始类型的警告。注意编译器警告。

在第一个场景中,您只需给出

对于(Map.Entry:devices.entrySet()){}

就足够了,您不需要在那里强制转换Map.Entry(字符串、设备)。在第二个场景中,当您从条目中获取值时,它将返回对象值,因此您需要强制转换到特定实例


Device Device=(Device)pairs.getValue()

在第一个场景中,您只需给出

对于(Map.Entry:devices.entrySet()){}

就足够了,您不需要在那里强制转换Map.Entry(字符串、设备)。在第二个场景中,当您从条目中获取值时,它将返回对象值,因此您需要强制转换到特定实例


Device Device=(Device)pairs.getValue()

有3种方法可以迭代映射 1) 使用For Each循环对条目进行迭代。 2) 使用For Each循环对键或值进行迭代。 3) 使用迭代器进行迭代。(为此,可以使用泛型或不使用泛型进行迭代)


有3种方法可以在地图上迭代 1) 使用For Each循环对条目进行迭代。 2) 使用For Each循环对键或值进行迭代。 3) 使用迭代器进行迭代。(为此,可以使用泛型或不使用泛型进行迭代)


您得到的错误是什么?除了发布您尝试过的代码可能也会有所帮助。这里有一个方法对我很有效:我添加了错误的屏幕截图。对于第二个示例,您需要强制转换:
Device Device=(Device)pairs.getValue()您得到的错误是什么?除了发布您尝试过的代码可能也会有所帮助。这里有一个方法对我很有效:我添加了错误的屏幕截图。对于第二个示例,您需要强制转换:
Device Device=(Device)pairs.getValue()这是在跟踪密钥的同时迭代哈希映射的最干净方法。这是在跟踪密钥的同时迭代哈希映射的最干净方法。