我创建了一个包含十个人详细信息的地图,我想打印出这些名字。 目前我必须单独打印每一个,我想要大约200个人,所以我想知道是否可以在循环中打印出这些名字。
(简化代码)
public class PersonDetails implements Serializable {
private String name;
private int age;
...
public PersonDetails(int Age, String Name) {
name = Name;
age = Age;
...
}
}
public class Test implements Serializable {
Map<String, PersonDetails> people = new TreeMap<String, PersonDetails>();
public Test() {
//10 people added
for(int x = 0; x<10; x++){
addPerson();
}
PersonDetails p0 = people.get("0");
String p0name = p0.getName();
System.out.println(p0name);
PersonDetails p1 = people.get("1");
String p1name = p1.getName();
System.out.println(p1name);
PersonDetails p2 = people.get("2");
String p2name = p2.getName();
System.out.println(p2name);
PersonDetails p3 = people.get("3");
String p3name = p3.getName();
System.out.println(p3name);
...
(I would like to loop this)
}
输出: 康纳 菲尔 缺口 麦克风 莎拉 汤姆 珍妮 埃里克 杰瑞 戴夫
是否可以使用相同的输出并循环这些输出?我已经尝试了一个ArrayLists,但我无法解决这个问题,我不确定它是否可行。 感谢
答案 0 :(得分:1)
是的:
for (PersonDetails p: people.keySet())
{
System.out.println(p.getName());
}
您应在声明和初始化时指定people
成员变量的类型。我认为关键是String
,给定get("0")
,所以:
Map<String, PersonDetails> people = new TreeMap<String, PersonDetails>();
使用ArrayList
:
List<PersonDetails> people = new ArrayList<PersonDetails>();
people.add(new PersonDetails(42, "Martin"));
for (PersonDetails p: people)
{
System.out.println(p.getName());
}
答案 1 :(得分:1)
Map<String, PersonDetails> people = new HashMap<String, PersonDetails>();
// add to the Map this way
people.put(person.getName(), person);
for (Person p : people.keySet()) {
System.out.print(String.format("%s ", p.getName());
}
System.out.println();
你明白了。