我已经在我的班级和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,所以我可以打印所有对象。
另一个问题:我如何只打印每个对象的标题和作者?
答案 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
方法中打印toString
和Book
:
@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);