web-dev-qa-db-ja.com

ループ内で異なる名前を持つ複数のオブジェクトを作成して配列リストに保存する

私が作ったクラスのタイプの複数のオブジェクトを作成しようとしています。次に、これらの値を配列リストに転送します。異なる名前を持つwhileループを使用してオブジェクトを作成するにはどうすればよいですか。たとえば、ここに私のコードがありますが、1つの名前のオブジェクトのみを作成します。

Customer cust = new Customer("bob", 20.0);

あなたが見たいなら私のコンストラクタ:

public Customer(String customerName, double amount)
{
    String name=customerName;
    double sale=amount;
}

StoreTestクラス(メインメソッドを使用):

import Java.util.ArrayList;
import Java.util.Scanner;

public class StoreTest {

ArrayList<Customer> store = new ArrayList<Customer>();

public static void main (String[] args)
{
        double sale=1.0; //so the loop goes the first time
        //switch to dowhile
        Scanner input = new Scanner(System.in);

        System.out.println("If at anytime you wish to exit" +
                ", please press 0 when asked to give " +
                "sale amount.");
        while(sale!=0)
        {
            System.out.println("Please enter the " +
                    "customer's name.");
            String theirName = input.nextLine();

            System.out.println("Please enter the " +
                    "the amount of the sale.");
            double theirSale = input.nextDouble();

            store.addSale(theirName, theirSale);
        }
        store.nameOfBestCustomer();
}

}

顧客クラス:

public class Customer {

private String name;
private double sale;

public Customer()
{

}

public Customer(String customerName, double amount)
{
    name=customerName;
    sale=amount;
}
}

ストアクラス(arraylistをいじるためのメソッドがあります:

import Java.util.ArrayList;


public class Store {

//creates Customer object and adds it to the array list
public void addSale(String customerName, double amount)
{
    this.add(new Customer(customerName, amount));
}

//displays name of the customer with the highest sale
public String nameOfBestCustomer()
{
    for(int i=0; i<this.size(); i++)
    {

    }
}
}
9
user1953907

このコードを使用できます...

public class Main {

    public static void main(String args[]) {
        String[] names = {"First", "Second", "Third"};//You Can Add More Names
        double[] amount = {20.0, 30.0, 40.0};//You Can Add More Amount
        List<Customer> customers = new ArrayList<Customer>();
        int i = 0;
        while (i < names.length) {
            customers.add(new Customer(names[i], amount[i]));
            i++;
        }
    }
}
4
programsji.com