使用数组而不是arrayLists

时间:2014-12-23 15:48:00

标签: java arrays

我正在编写一个程序,用于读取用户输入的产品数量,然后在一个循环中向用户询问产品名称和产品价格。然后它使用Array(而不是arrayList)来存储它们。

我已经为名为产品的产品编写了一个类(我可以将其删除,只是为了让它更容易)

public class Products {
    String ProductName;
    double ProductPrice;

    public Products(String a , double b) {
        setProductName(a);
        setProductPrice(b);         
    }

    public String getProductName() {
        return ProductName;
    }

    public double getProductPrice() {
        return ProductPrice;
    }

    public void setProductName(String a) {
        ProductName = a;
    }

    public void setProductPrice(double b) {
        ProductPrice = b;
    }

    public String toString() {
        return ProductName+": "+ProductPrice+"\n";
    }
}

我的程序在这里

import java.util.Scanner;
public class PreLab6 {

    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        int NumOfProducts;
        String ProductName ;
        double ProductPrice;

        System.out.println("Enter the number of products:");
        NumOfProducts = scan.nextInt();



        while(NumOfProducts >= 1)
        {
            System.out.println("Enter the name of product:");
            ProductName = scan.next();


            System.out.println("Enter the price:");
            ProductPrice = scan.nextDouble();

            NumOfProducts--;
        }
    }
}

我无法完成我的程序,因为我应该使用数组,但没有arraylist。我应该有这样的输出:

输入产品数量:
2
输入产品名称:

输入价格:
25.30
输入产品名称:

输入价格:
1.20
肉:25.3
鸡蛋:1.2

1 个答案:

答案 0 :(得分:3)

注意,我的意思是将Products []更改为Product []。该课程是单一产品,因此产品

没有意义

您可以初始化一个大小为numOfProducts的数组,然后您可以循环并开始填充用户输入。

ArrayLists不同,Arrays是固定大小(如果您知道要预先存储的项目数量,这是很好的)。 Arrays为此类解决方案派上用场,因为您知道使用numOfProducts之前存储的产品数量。

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int numOfProducts;
    String productName;
    double productPrice;

    System.out.println("Enter the number of products:");
    numOfProducts = scan.nextInt();
    //Create an array of Products using the user value stored in numOfProducts
    Product[] products = new Product[numOfProducts];

    //Loop over products, and initialize each space with a new product
    for (int i = 0; i < products.length; i++) {
        System.out.println("Enter the name of product:");
        productName = scan.next();

        System.out.println("Enter the price:");
        productPrice = scan.nextDouble();

        products[i] = new Product(productName, productPrice);
    }
}