从Mapped信息中打印出名称

时间:2012-02-25 16:52:17

标签: java

我创建了一个包含十个人详细信息的地图,我想打印出这些名字。 目前我必须单独打印每一个,我想要大约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,但我无法解决这个问题,我不确定它是否可行。 感谢

2 个答案:

答案 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();

你明白了。