如何将List打印为表格格式

时间:2015-02-09 21:03:00

标签: java arraylist

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

  

     

     

多波

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

     

另一个名字另一个SurName另一个Dob

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

List<Person> people = /* ... */;
for (Person person : people) {
    System.out.println(person);
}

或者,在Java 8中:

people.forEach(System.out::println);