【问题标题】:Adding user input to ArrayList using do-while loop使用 do-while 循环将用户输入添加到 ArrayList
【发布时间】:2019-05-19 03:14:48
【问题描述】:

我正在尝试使用 do-while 循环将用户输入添加到 Arraylist,但是我一直以一个列表结束,该列表仅包含重复多次输入的最终项目。

public static ArrayList<Item> purchaseItems()
       {
        ArrayList<Item> toBuy = new ArrayList<Item>();

        String response;
        System.out.println("What would you like to purchase? (type \"done\" to end) ");   
        do {

             response = in.nextLine();
             if(!response.equals("done") ){

                    toBuy.add(new Item(response, randGen.nextInt(100)));
                    System.out.println(toBuy);
            }

        } while(!response.equals("done"));

        return toBuy;
    }

【问题讨论】:

  • 在您的问题中包含 Item 类
  • 如果要打印列表中的所有项目,则需要遍历列表
  • 它对我有用。请分享您的整个代码,或告诉我们/我您如何假设列表仅包含重复项
  • 你的字段在Item或者static吗?
  • 哦,是的,这些字段是静态的,因此修复了它。谢谢!!!!

标签: java arraylist bluej


【解决方案1】:

应该像我的评论中提到的那样工作。 如果尚未完成,请在您的 Item 类中实现 toString() 方法。 你应该替换你的 System.out.println 如下:

    public static ArrayList<Item> purchaseItems()
           {
            ArrayList<Item> toBuy = new ArrayList<Item>();

            String response;
            System.out.println("What would you like to purchase? (type \"done\" to end) ");   
            do {

                 response = in.nextLine();
                 if(!response.equals("done") ){

                        toBuy.add(new Item(response, randGen.nextInt(100)));
                }

            } while(!response.equals("done"));

               for (Item item : toBuy){
               System.out.println(item);
                }
            return toBuy;
        }

如果这没有帮助,请分享更多代码。

【讨论】:

    【解决方案2】:

    这是完整的工作示例

    package stackoverflow;
    
    import java.util.ArrayList;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Q53837506 {
    
        public static void main(String[] args) {
            ArrayList<Item> purchaseItems = purchaseItems();
            System.out.println(purchaseItems);
    
        }
    
        public static class Item {
            String r;
            int v;
    
            public Item(String r, int v) {
                super();
                this.r = r;
                this.v = v;
            }
    
            @Override
            public String toString() {
                return "Item [r=" + r + ", v=" + v + "]";
            }
        }
    
        static final Random randGen = new Random();
    
        public static ArrayList<Item> purchaseItems() {
            ArrayList<Item> toBuy = new ArrayList<Item>();
    
            String response;
            System.out.println("What would you like to purchase? (type \"done\" to end) ");
            Scanner in = new Scanner(System.in);
            do {
    
                response = in.nextLine();
                if (!response.equals("done")) {
    
                    toBuy.add(new Item(response, randGen.nextInt(100)));
                    System.out.println(toBuy);
                }
            } while (!response.equals("done"));
    
            return toBuy;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-03
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      相关资源
      最近更新 更多