尝试将for循环与ArrayList一起使用时发生.length错误



首先,我对标题感到抱歉,我想不出更好的拼写方式。实际错误在选项3中(每当我试图将选项1中的所有销售额相加时)。当我尝试使用salesList.length来跟踪数组的大小时,我得到了cannot find symbol- variable length。我对使用数组列表非常陌生,这种方法在早期的数组中适用,但该数组不是动态的。有没有一种特定的方法来跟踪动态数组列表的长度?

import java.util.*;
public class CustomerTest
{
public static void main(String[] args)
        {
            double totalSales = 0;
            ArrayList<String> nameList;
            nameList = new ArrayList<String>();
            ArrayList<Double> salesList;
            salesList = new ArrayList<Double>();
            Scanner myScanner = new Scanner(System.in);
            boolean done = true;     
            do
            {
                System.out.println("1) Add a new customer n 2) Print all customers n 3) Compute and print the total sales n 4) Quit");
                int choice = Integer.parseInt(myScanner.nextLine());
                if (choice == 1)
                {
                    System.out.print("Add a new customer ");
                    String answer = myScanner.nextLine();
                    nameList.add(answer);
                    System.out.print("Enter their sales ");
                    String answer2 = myScanner.nextLine();
                    double answer3 = Double.parseDouble(answer2);
                    salesList.add(answer3);
                }
                else if(choice == 2)
                {
                    System.out.println("Customers: " + nameList);
                    System.out.println("Sales: " + salesList);
                }
                else if(choice == 3)
                {
                    for(int i = 0; i < salesList.length; i++)
                    {
                     totalSales = totalSales + salesList[i];   
                    } 
                    System.out.println(totalSales);
                }
                else if(choice == 4)
                {
                    System.out.println("Goodbye   *Bows gracefully*"); 
                    done = false;
                }
                else
                    System.out.println("Invalid Choice");     
            }
            while (done);
           System.exit(0);
        }
}

将其更改为salesList.size();。与数组不同,ArrayList的长度不是一个可直接访问的字段。

阵列具有length字段

ArrayList没有长度字段类型使用size()

使用salesList.size()。与数组不同,您不能使用salesList.lenght

else if (choice == 3) {
        for (int i = 0; i < salesList.size(); i++) {
            totalSales += salesList.get(i);
        }
        System.out.println(totalSales);
        }

用这个替换选项3,它应该会起作用。

您的代码有错误:将else if(choice==3) {}条件部分更改为以下部分。你不能使用salesList.length,可以使用salesList.size(),请更改salesList[i] to salesList.get(i).

 else if(choice == 3)
                {
                    for(int i = 0; i < salesList.size(); i++)
                    {
                     totalSales += salesList.get(i);   
                    } 
                    System.out.println(totalSales);
                }

相关内容

最新更新