将多个文本字段放入一个数组列表中

Putting several textfields into one arraylist

在编码方面我是个菜鸟。我将要创建一个程序,您可以在其中添加一本书的标题 (String)、作者 (String)、发行年份 (int) 和类型 (String),方法是在文本字段中编写一本书。这些东西应该保存在一个数组列表中。我不知道如何将所有这些项目添加到 arraylist 中的同一个槽中。请尽快帮忙

您可以通过两种方式执行此操作。

  1. 创建一个 class 包含 标题(字符串)、作者(字符串)、发行年份(整数)和流派(字符串) 和创建一个 class 的新实例并将其添加到数组中。这是 classes.

  2. 上的 javadoc
  3. (不推荐,但仍然有效)您可以创建一个大小为 4 的数组列表。该数组将是一个 Object 以支持整数。示例:Object[] obj = new Object[]{"title", "author", 2015, "genre"}; 然后您可以获取该数组并将其添加到您想要将此信息添加到的另一个数组。

如果您想选择选项二并创建一个 class,这里有一个示例:

public class Book {

    private String title, author, genre;
    private int releaseYear;

    public Book(String title, String author, int releaseYear, String genre){
        this.title = title;
        this.author = author;
        this.releaseYear = releaseYear;
        this.genre = genre;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public String getGenre() {
        return genre;
    }

    public int getReleaseYear() {
        return releaseYear;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public void setGenre(String genre) {
        this.genre = genre;
    }

    public void setReleaseYear(int releaseYear) {
        this.releaseYear = releaseYear;
    }

}

如果您想创建本书的新实例 class 您可以这样做:

Book book = new Book("title", "author", 2015, "genre");

根据我在原文 post 中的评论,您的书 class 应该是这样的:

public class Book {
    private String title;
    private String author;
    private String genre;
    private int releaseYear;

    public Book(String title, String author, String genre, int releaseYear) {
        this.title = title;
        this.author = author;
        this.genre = genre;
        this.releaseYear = releaseYear;
    }

    public String getTitle() { return this.title; }
    public String getAuthor() { return this.author; }
    public String getGenre() { return this.genre; }
    public int getReleaseYear() { return this.releaseYear; }
}

现在您需要做的就是创建这些 class 的多个实例,并将它们添加到您的 ArrayList 中。

这里有一个 link 以及一些如何使用 ArrayLists 的例子:http://beginnersbook.com/2013/12/how-to-initialize-an-arraylist/

所以您需要用 getters/setters 创建一本书 class。

public class Book {
    public String title; 
    public String author; 
    public int year; 
    public String genre; 
}

然后你创建一本书

Book book = new Book(); 

使用 setter 来设置实例变量(或者如果你有一个带有适当参数的构造函数,你可以在创建书籍对象时这样做)

book.setAuthor("R.L.Stein"); 

一旦设置了所有字段,您就可以将图书添加到数组列表中。

ArrayList<Book> books = new ArrayList<Book>(); 
books.add(book); 

要打印,您的书中应该有一个 toString() 方法 class

public String toString(){
   return "Title: "+title+"\nAuthor: "+author+"\nYear: "+year+"\nGenre: "+
        genre; 
}

现在,当您打印图书对象时,它会显示其所有信息。然后最好使用循环遍历列表并在 books

中打印每本书
for(int i=0; i<books.size(); i++){
   System.println(books.get(i)); 
}