Java 地图';s值是一个对象。如何使用/迭代所有这些变量?(爪哇)
我有描述人的数据——他们都有身份证、头发颜色、眼睛颜色、年龄等等。 People类包含这些值。 我在另一节课上画了一张这样的地图: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()方法,因此可以在其他地方使用它 当我试图获取我的“人物”地图的值时
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);
}