Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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 地图';s值是一个对象。如何使用/迭代所有这些变量?(爪哇)_Java_Class_Object_Map_Hashmap - Fatal编程技术网

Java 地图';s值是一个对象。如何使用/迭代所有这些变量?(爪哇)

Java 地图';s值是一个对象。如何使用/迭代所有这些变量?(爪哇),java,class,object,map,hashmap,Java,Class,Object,Map,Hashmap,我有描述人的数据——他们都有身份证、头发颜色、眼睛颜色、年龄等等。 People类包含这些值。 我在另一节课上画了一张这样的地图: private static Map<Integer, People> people = new HashMap<Integer, People>(); private static Map people=new HashMap(); 我为它创建了一个getPeople()方法,因此可以在其他地方使用它 当我试图获取我的“人物”地图的值时

我有描述人的数据——他们都有身份证、头发颜色、眼睛颜色、年龄等等。 People类包含这些值。 我在另一节课上画了一张这样的地图:

private static Map<Integer, People> people = new HashMap<Integer, People>();
private static Map people=new HashMap();
我为它创建了一个getPeople()方法,因此可以在其他地方使用它

当我试图获取我的“人物”地图的值时,我会将其作为一个长字符串返回,如 棕色蓝6 这没关系,因为我得到了正确的值,但我需要一个接一个地使用它们

比如说,我需要对这个人的ID做些什么,或者如果这个人有蓝色的眼睛,我需要得到这个人的头发颜色

如何迭代这些值或仅获取“eyeColor”字符串的值?
我真的需要在这里使用地图,还是有其他更简单的方法?(描述人的东西必须放在一个单独的类中,我不能改变这一点。)

不清楚您是否需要地图,甚至不清楚您使用的是什么键。除非您需要按键查找,否则您可能只需要一个
列表
——如果要表示每个实例中的一个人,您可能应该将您的类型重命名为
Person
,这看起来更可能。此时,您可以使用:

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

现在还不清楚你是否需要一张地图,或者你用的是什么键。除非您需要按键查找,否则您可能只需要一个
列表
——如果要表示每个实例中的一个人,您可能应该将您的类型重命名为
Person
,这看起来更可能。此时,您可以使用:

for (Person person : foo.getPeople() {
    String eyeColor = person.getEyeColor();
    // Do whatever you need
}
首先,人就是人。我怀疑你可能想要这样的东西:

private static Map<Integer, Person> people = new HashMap<Integer, Person>();
private static Map people=new HashMap();
之后,可以使用增强的for循环在映射上迭代。例如:

for(Map.Entry<Integer, Person> person: people.entrySet())
{
   String hair = person.getHairColor();
   //... You can retrieve other features as well.
}
for(Map.Entry-person:people.entrySet())
{
String hair=person.getHairColor();
//…您还可以检索其他功能。
}
首先,人就是人。我怀疑你可能想要这样的东西:

private static Map<Integer, Person> people = new HashMap<Integer, Person>();
private static Map people=new HashMap();
之后,可以使用增强的for循环在映射上迭代。例如:

for(Map.Entry<Integer, Person> person: people.entrySet())
{
   String hair = person.getHairColor();
   //... You can retrieve other features as well.
}
for(Map.Entry-person:people.entrySet())
{
String hair=person.getHairColor();
//…您还可以检索其他功能。
}

由于您没有提供类代码,我不得不猜测字段名称等,但这似乎应该可以满足您的要求:

// Get the people (which are values, as opposed to keys) of the map.
Collection<Person> people = getPeople().values();

// Iterate over each person.
for (Person somePerson : people) {
    // Do something with the eye color.
    System.out.println("This eye color is " + somePerson.eyeColor);
}
//获取地图中的人物(是值,而不是键)。
Collection people=getPeople().values();
//迭代每个人。
为(某人:人){
//用眼睛的颜色做点什么。
System.out.println(“这个眼睛颜色是”+somePerson.eyeColor);
}

由于您没有提供类代码,我不得不猜测字段名称等,但这似乎应该可以满足您的要求:

// Get the people (which are values, as opposed to keys) of the map.
Collection<Person> people = getPeople().values();

// Iterate over each person.
for (Person somePerson : people) {
    // Do something with the eye color.
    System.out.println("This eye color is " + somePerson.eyeColor);
}
//获取地图中的人物(是值,而不是键)。
Collection people=getPeople().values();
//迭代每个人。
为(某人:人){
//用眼睛的颜色做点什么。
System.out.println(“这个眼睛颜色是”+somePerson.eyeColor);
}