使用for循环将数字添加到ArrayList中 - Java

时间:2014-03-13 00:00:25

标签: java arrays methods arraylist

超市希望奖励每天最好的顾客,在超市的屏幕上显示顾客的名字。为此,客户的购买金额存储在ArrayList中,客户的名称存储在相应的ArrayList中。实现一个方法public static String nameOfBestCustomer(ArrayList sales,ArrayList customers),它返回具有最大销售额的客户的名称。编写一个程序,提示收银员输入所有价格和名称,将它们添加到两个数组列表,调用您实现的方法,并显示结果。使用0的价格作为哨兵。

到目前为止,我在使用for循环通过键盘输入数字/名称时遇到问题。这是我到目前为止所拥有的;

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

public class TopCustomer {

    public static String nameOfBestCustomer(ArrayList<Double> sales, ArrayList<String> customers) {

}

public static void main (String [] args){
    ArrayList<Double> sales = new ArrayList<Double>();
    ArrayList<String> customer = new ArrayList<String>();
    Scanner in = new Scanner(System.in);        
    System.out.print("How many Customers are there?");
    int num = in.nextInt();

    for (int i = 1; num <= i; i++) {
        System.out.print("Enter name of customer " + i + ": \n");
        customer.add(i) = in.nextString();
        System.out.print("Enter how much customer " + i + ": \n");
        sales.add(i) = in.nextDouble(); 
    }
}

}

2 个答案:

答案 0 :(得分:2)

您的错误在这里:

for (int i = 1; num <= i; i++) { 

如果用户输入的num大于1,则此循环将立即终止。想要它是:

for (int i = 1; i <= num; i++) {

您还在添加数据错误。而不是:

customer.add(i) = in.nextString();

  sales.add(i) = in.nextDouble(); 

DO,

customer.add(in.nextString())

sales.add(in.nextDouble());

答案 1 :(得分:2)

你在这里有2个错误我在下面更正了

for (int i = 0; i < num; i++){
    System.out.print("Enter name of customer " + (i+1) + ": \n");
    customer.add(in.next());
    System.out.print("Enter how much customer " + (i+1) + ": \n");
    sales.add(in.nextDouble()); 
}

首先你的for循环应该按我呈现的方式格式化,否则它总是立即结束,除非只有一个客户,你使用的.add()方法自动添加内部到数组的末尾列表。