创建一个方法来打印ArrayList,然后在另一个类中调用它

时间:2015-12-10 02:19:49

标签: java arraylist

我已经在我的班级和BookList'中建立了一个Arraylist,但我需要它在另一个类中打印。

我想我可能不得不将Arraylist的打印变成一个方法,所以它可以从另一个类调用;如果我错了,我还能做些什么来实现这个目标呢?

以下是我的代码,供参考。

import java.util.ArrayList;


public class BookList {

public static void main (String[] args){

    Book a = new Book();

    a.setTitle("Random ");
    a.setAuthor("Craig Robertson");
    a.setBookID("1847398812");
    a.setonLoan(false);
    a.setNumberofLoans(3);

    Book b = new Book();

    b.setTitle("The Last Refuge");
    b.setAuthor("Craig Robertson");
    b.setBookID("1471127753");
    b.setonLoan(false);
    b.setNumberofLoans(2);

    Book c = new Book();

    c.setTitle("The Bird That Did Not Sing");
    c.setAuthor("Alex Gray");
    c.setBookID("0751548278");
    c.setonLoan(true);
    c.setNumberofLoans(7);

    ArrayList<Book> BookList = new ArrayList<Book>();
    BookList.add(a);
    BookList.add(b);
    BookList.add(c);

    int count = BookList.size();
    System.out.println("Count: " + count);
    System.out.println("");

        for (Book  d : BookList){
            System.out.println(d);

    }   
  }
}

为了实现这一点,我在我的书中使用了toString()方法。 class,所以我可以打印所有对象。

另一个问题:我如何只打印每个对象的标题和作者?

2 个答案:

答案 0 :(得分:3)

Book课程中创建一个静态方法来处理显示:

public static void showBooks(ArrayList<Book> books) {
    for (Book  d : Books){
        System.out.println(d); // calls the 'toString' method on each Book object
}

从主方法调用它:

ArrayList<Book> BookList = new ArrayList<Book>();
BookList.add(a);
BookList.add(b);
BookList.add(c);

Book.showBooks(BookList); // prints the books, one by one
  

我如何只打印每个对象的标题和作者?

您可以选择仅在title课程的覆盖 author方法中打印toStringBook

@Override
public String toString() {
    // 'author' & 'title' are members of the 'Book' class
    return "Author: " + author + "- Title: " + title;
}

答案 1 :(得分:-1)

覆盖BookList tostring方法,如下所示:

public class BookList{
    @Override
    public String toString(){
        // Return some string here
    }
}

然后正常使用它。

System.out.println(myBookList);