从类对象创建Array或ArrayList

时间:2013-07-19 19:06:33

标签: java arrays arraylist

我一直在研究这个问题,但似乎无法弄清楚如何将项目添加到ArrayList。我想将grocItem(应该是来自for循环的用户输入的7个grocItems)添加到grocList的ArrayList中:

        public class ItemData{
        public ItemData(String name, double cost, int priority){

        Main.(ArrayList grocList).add(grocItem);

          // Main.groclist.add(grocItem);



    }
}

主类:

import java.util.*;


public class Main {

    public static List<ItemData> itemData = new ArrayList<ItemData>();
    public static void main(String[] args) {
        int i=0;
        //String name1;
        //int priority1; 
        //double cost1;

       String[] item  = new String[7];

        for (i=0; i<item.length; i++)  {
            Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter item name " + i);
            String name = keyboard.next();
            Scanner keyboard2 = new Scanner(System.in);
            System.out.println("Enter the price of item " + i);
            double cost = keyboard2.nextDouble();
            Scanner keyboard3 = new Scanner(System.in);
            System.out.println("Enter Priority Number " + i);
            int priority = keyboard3.nextInt();

            ItemData grocItem = new ItemData(name, cost, priority);
        }
        //How do I add grocItem to an Array list of other grocItems (6 grocItems from user input array item)
        Main.itemData.add(groclist);

    }
}

2 个答案:

答案 0 :(得分:5)

更改代码,在循环内添加方法。

for (i=0; i<item.length; i++)  {
            Scanner keyboard = new Scanner(System.in);
            System.out.println("Enter item name " + i);
            String name = keyboard.next();
            Scanner keyboard2 = new Scanner(System.in);
            System.out.println("Enter the price of item " + i);
            double cost = keyboard2.nextDouble();
            Scanner keyboard3 = new Scanner(System.in);
            System.out.println("Enter Priority Number " + i);
            int priority = keyboard3.nextInt();

            ItemData grocItem = new ItemData(name, cost, priority);
            itemData.add(grocItem ); // add here 
        }

答案 1 :(得分:1)

您应该将ItemData对象添加到循环内的arraylist中:

for (i=0; i<item.length; i++)  {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter item name " + i);
        String name = keyboard.next();
        Scanner keyboard2 = new Scanner(System.in);
        System.out.println("Enter the price of item " + i);
        double cost = keyboard2.nextDouble();
        Scanner keyboard3 = new Scanner(System.in);
        System.out.println("Enter Priority Number " + i);
        int priority = keyboard3.nextInt();

        ItemData grocItem = new ItemData(name, cost, priority);
        itemData.add(groclist); // <-- add to arraylist inside the loop

}