【问题标题】:How would I add a object to a arraylist using scanner?如何使用扫描仪将对象添加到数组列表?
【发布时间】:2020-02-28 12:29:36
【问题描述】:

我有一个数组列表,我的目标是不断将对象添加到数组列表中,直到用户输入一个值。我有两个不同的课程。我曾尝试使用扫描仪,但这只会更改变量的名称并且不会创建新对象。我是否必须从其他类继承。我将如何不断增加数组列表的大小?任何帮助表示赞赏。

下面是我的第一堂课:

public class Real_Entertainment 
{
    String BookName; 
    String Author; 
    double Rating; 
    int Purchases;

    public Real_Entertainment(String BookName, String Author, double Rating, int Purchases, int i)
    {
        this.BookName = BookName;
        this.Author = Author;
        this.Rating = Rating;
        this.Purchases = Purchases;
    }
    public void setBookName(String BookName)
    {
        this.BookName = BookName;
    }
    public void setAuthor (String Author )
    {
        this.Author = Author;
    }
    public void setRating (double Rating)
    {
        this.Rating = Rating;
    }
    public void setPurchased (int Purchases)
    {
        this.Purchases = Purchases;
    }

}

以下是我的主要课程:

import java.util.Scanner;
import java.util.ArrayList;

public class Real_Main 
{
    public static void main(String[] args) 
    {
        ArrayList<Real_Entertainment> print = new ArrayList<Real_Entertainment>();
        Real_Entertainment Book1 = new Real_Entertainment("The Nickel Boys ", "Colson 
        Whitehead", 4.3, 500,000);
        Real_Entertainment Book2 = new Real_Entertainment("Olive, Again", "Elizabeth Strout", 6, 
        321,000);
        Real_Entertainment Book3 = new Real_Entertainment("Gingerbread", "Helen Oyeyemi", 2, 
        681,000);
        Real_Entertainment Book4 = new Real_Entertainment ("On Earth We're Briefly Gorgeous", 
        "Ocean Vuong", 2, 421,000);

        print.add(Book1);
        print.add(Book2);
        print.add(Book3);
        print.add(Book4);
    }

    public void addToList(ArrayList<Real_Entertainment> print)
    { 

         //The method where it adds to the arraylist    
    }

}

【问题讨论】:

  • 问题不清楚,您已经使用 print.add 添加到列表中。请展示您使用扫描仪所做的尝试。
  • 感谢您的回复。我已经添加了 4 个没有扫描仪的对象。这是我使用扫描仪失败的尝试 Scanner brand = new Scanner(System.in); Scanner BookName = new Scanner (System.in); System.out.println("这本书叫什么名字?"); String BookName = BookName.nextLine();
  • 因为您需要用户输入,所以您需要该扫描仪代码。
  • 谢谢,我已经尝试过了,但这只会改变变量我将如何创建对象并增加数组列表的大小

标签: java arraylist java.util.scanner


【解决方案1】:

从概念上讲,您想要做的是捕获用户的输入(例如,书名),然后使用该数据来实例化一个新的 Real_Entertainment 实例(如果这就是您所需要的),然后添加现有列表的新实例。例如:

Scanner scanner = new Scanner(System.in);
System.out.print("What is your book's title? ");
String title = scanner.next();
Real_Entertainment realEntertainment = new Real_Entertainment(title, null, 0, 0, 0);
print.add(realEntertainment);

【讨论】:

  • 谢谢 没有那样想。现在,如果我想从用户那里获得更多信息,因为我有更多变量,我会将 null 更改为 Author
  • 没错!没错 - 您需要向用户询问您关心的每个输入,然后使用对它们的变量引用作为构造函数中的参数。例如,如果您已经有了上面的代码并添加 String author =scanner.next();,那么您将构建新的 Real_Entertainment(title, author, 0, 0, 0)
  • 没问题!祝你好运!
  • 我只是想如果我用户输入多个对象,我将如何创建一个创建新对象的结构,而不是我预先制作一个对象。
猜你喜欢
  • 1970-01-01
  • 2014-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 2014-10-26
  • 1970-01-01
相关资源
最近更新 更多