我有一个包含姓名、年龄和汽车的人员列表。我能够打印出一组好的字符串值。但是,当我将另一个姓名、年龄、汽车添加到列表中时,仅显示最后一个项目/列表。如何打印两组人员数据?
List<People> peopleInfo = getInfo(ppl);
String peopleResults = mapper.writeValueAsString(peopleInfo);
for(People model : peopleInfo) {
People people = new People(model.getName(), model.getAge(), model.getCar());
ToJSON peop = new ToJSON(people);
ObjectMapper mapper2 = new ObjectMapper();
ObjectWriter writer = mapper2.writer(new DefaultPrettyPrinter());
writer.writeValue(new File("file.json"), peop);
getInfo方法
private List<People> getInfo(String ppl) {
List<People> peopleList = new ArrayList<People>();
People people = new People();
//1st Person
people.setName("Tim");
people.setAge("22");
people.setCar("Ford");
//Second Person
people.setName("Susan");
people.setAge("42");
people.setCar("Toyota");
peopleList.add(people);
return peopleList;
}
最佳答案
您在创建第二个人时重新定义人员,因此仅将第二个人添加到列表中
//1st Person
people.setName("Tim");
people.setAge("22");
people.setCar("Ford");
//Second Person
people.setName("Susan");
people.setAge("42");
people.setCar("Toyota");
peopleList.add(people);
修复方法是创建多个人员对象或在定义人员后立即添加人员
People people = new People();
People people2 = new People();
People.setName("Time");
People2.setName("Susan");
peopleList.add(people);
peopleList.add(people2);
或者后者
people.setName("Tim");
people.setAge("22");
people.setCar("Ford");
peopleList.add(people);
people.setName("Susan");
people.setAge("42");
people.setCar("Toyota");
peopleList.add(people);
关于java - 如何显示 ArrayList 中包含重复值的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35206728/