java - Map 的值是一个对象。我如何使用/迭代所有这些变量? ( java )

标签 java class object dictionary hashmap

我有描述人的数据 - 他们都有 ID、头发颜色、眼睛颜色、年龄等。 People 类包含这些值。 我在其他类(class)中制作了这样的 map :

private static Map<Integer, People> people = new HashMap<Integer, People>();

我为它创建了一个 getPeople() 方法,这样我就可以在其他地方使用它。

当我尝试获取“人员” map 的值时,我将其作为长字符串返回,例如 棕蓝色6 没关系,因为我得到了正确的值,但我需要一一使用它们。

假设,我需要对该人的 ID 执行某些操作,或者如果该人有蓝眼睛,则获取该人的头发颜色。

如何迭代这些值或仅获取“eyeColor”字符串的值? 我真的需要在这里使用 Map 还是有其他更简单的方法? (描述人的事物必须留在单独的类中,我无法更改这一点。)

最佳答案

目前尚不清楚您是否需要 map ,甚至不清楚您使用的是什么 key 。除非您需要通过按键查找内容,否则您可能只需要 List<People> - 你可能应该将你的类型重命名为 Person如果它的意思是每个实例代表一个人,这看起来更有可能。此时,您可以使用:

for (Person person : foo.getPeople() {
    String eyeColor = person.getEyeColor();
    // Do whatever you need
}

关于java - Map 的值是一个对象。我如何使用/迭代所有这些变量? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025962/

相关文章:

java - java类应该如何组织?

forms - Grails Command Object与模型重定向以具有相同的url/页面

java - 如何将 xslt 生成的错误消息传递给 java 应用程序调用方

java - 如何接收REST服务调用中的输入参数?

java - 如何解决StackOverFlowError?

javascript - 使用javascript将 "key-value"对数组转换为对象

java - 在Java中,远程对象也可以是客户端吗?

java - Eclipse 调试器未在 Java 7 中的 JUnit 断点中停止

java - 如何设置 JavaFX 对话框高度?

java - 在Java中初始化编译时已知的静态类变量