如何将列表打印成 table 格式

How to print a List into a table format

我正在学习 Java 并且有一个非常简单的要求,我似乎无法弄清楚我哪里出错了。写入 console

的简单 ArrayList

FirstName

SurName

Dob

ArrayList<String> myList = new ArrayList<String>();
    
myList.add("FirstName");
myList.add("Another FirstName");
myList.add("SurName");
myList.add("Another SurName");
myList.add("Dob");
myList.add("Another Dob");

我似乎无法弄清楚如何将它们打印在一行中,即

FirstName Surname Dob

Another FirstName Another SurName Another Dob

在此先感谢您的帮助。

for(String listItem : myList){
    System.out.print(listItem);
}

这就是你的答案。它将循环,每次循环 listItem 将等于列表中的一个元素,并将使用 System.out.print.

打印它

如果一个人的条目彼此相邻,您可以通过列表打印两个项目 System.out.print,第三个项目 System.out.println,但您真正需要做的创建一个 Person class 包含名字、姓氏和出生日期字段,一个 toString() 方法 returns 所有这些都在一个字符串中,然后你可以遍历你的 ArrayList<Person> 并用 System.out.println:

打印出每一个
List<Person> people = /* ... */;
for (Person person : people) {
    System.out.println(person);
}

或者,在 Java 8:

people.forEach(System.out::println);
ArrayList<String> myList = new ArrayList<String>();

myList.add("FirstName");
myList.add("Another FirstName");
myList.add("John");

myList.add("SurName");
myList.add("Another SurName");
myList.add("Smith");

myList.add("Dob");
myList.add("Another Dob");
myList.add("31/1/1994");

int stride = myList.size() / 3;
for (int row = 0; row < myList.size() / 3; row++) {
    System.out.println(String.format("%20s %20s %12s", myList.get(row),
            myList.get(row + stride), myList.get(row + stride * 2)));
}

输出

        FirstName              SurName          Dob
Another FirstName      Another SurName  Another Dob
             John                Smith    31/1/1994