java - 将未知数量的对象添加到数组列表

标签 java object arraylist

我有一项学校作业,要求我将未知数量的“水果”类实例添加到数组列表“篮子”中,并打印出每个水果对象的详细信息,我的代码将水果添加到数组列表中,但是似乎每次都会覆盖以前的条目,给我留下同一项目的数组列表。这是我到目前为止的代码:

import java.util.*;
public class Question1
{
   public static void main(String[]Augs)
   {
      List<Fruit> basket = new ArrayList<Fruit>();
      int input;
      Scanner inp = new Scanner(System.in);
      String name;
      String colour;
      double mass;
      int k = -1;
      while (true)
      {
         System.out.println("Enter option: (1) add fruit (2) quit:");
         input = inp.nextInt();
         if (input==2)
            break;
         else
         {
             k++;
            System.out.println("Enter name, colour and mass in kg separated by space");
            name = inp.next();
            colour = inp.next();
            mass = inp.nextDouble();
            Fruit temp = new Fruit(name, colour, mass);
            basket.add(temp);
         }
      }
      for (int i = 0; i<basket.size(); i++)
      {
         System.out.println(basket.get(i));
      }
   }
}

//fruit class
public class Fruit
{
   private String name;
   private String colour;
   private double mass;
   public Fruit(String name, String colour, double mass)
   {
      this.name=name;
      this.colour=colour;
      this.mass=mass;
   }
   public String toString()
   {
      return name + " " + colour + " " + mass;
   }
}

最佳答案

在将水果添加到篮子方面,您的代码看起来很好。我认为让您困惑的是System.out.println(basket.get(i))。您本质上是要求打印 Fruit 对象,但运行时不知道如何执行此操作,因此尝试通过调用将 Fruit 转换为某种字符串表示形式其上的 toString() 方法。我认为您的 Fruit 类无论里面有什么内容都会打印相同的字符串。尝试重写 toString() 方法以获得正确的结果。

public class Fruit
{
    @Override
    public String toString()
    {
        return this.getName() + " " + this.getColor() + " " + this.getMass();
    }
}

关于java - 将未知数量的对象添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807656/

相关文章:

java - Apache Spark - 并行处理来自 Kafka 的消息 - Java

java - Spring MVC 中的自定义 HTTP 方法

java - 如何使用 jersey 将单个元素转换为 arraylist 并将格式转换为 json?

java - 当我清除我在 [Java] 中添加的临时列表时,列表中的列表变为空

java - 无法初始化 GXT GWT 中的类

java - 为什么这两个 for 循环给出不同的结果?

javascript - 如何获取 JavaScript 对象的大小?

java - 向 ArrayList 添加一个新对象,该对象是另一个类的属性

javascript - 将新创建的 dom 元素添加到一个空的 jQuery 对象

c# - 将旧版 .NET 集合迁移到其通用对应集合