簡體   English   中英

創建一個打印ArrayList的方法,然后在另一個類中調用它

[英]Creating a method to print ArrayList, then calling it in another class

我已經在“ 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);

    }   
  }
}

為此,我在'Book'類中具有toString()方法,因此可以打印所有對象。

另一個問題:如何打印每個對象的標題和作者?

Book類中創建一個靜態方法來處理顯示:

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

並從main方法中以這種方式調用它:

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

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

如何僅打印每個對象的標題和作者?

您可以選擇僅在Book類的重寫 toString方法中打印titleauthor

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

像這樣重寫BookList tostring方法:

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

然后只需正常使用即可。

System.out.println(myBookList);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM