如何在Java中正确使用数组列表?

时间:2017-10-29 16:15:38

标签: java arrays arraylist

对于我的学校工作,我被赋予了为Java创建一个简单的书店程序的任务。到目前为止,我已经设法创建一个工作程序,一旦用户输入数据就显示和存储数据,我现在的问题是,我想在用户结束程序后显示数据,这样他们输入的所有数据都将显示。我想要的是在这些标题下显示作者,价格,出版商和ISBN输入的数据。我知道您使用Array列表来执行此操作,但我不知道如何在Java中执行此操作,非常感谢任何帮助。

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String[]
        title=new String[100],
        author=new String[100],
        publisher=new String[100],
        ISBN=new String[100];
        boolean endinput = false;
        boolean Yes = true;
        double[] price=new double[100];
        System.out.println("Welcome To Kieran's Bookstore");
        while (Yes) {

            System.out.println("Input The Title:");
            title[0] = scan.next();
            System.out.println("Input The Author:");
            author[0] = scan.next();
            System.out.println("Input The Price Of The Book:");
            scan.next();
            System.out.println("Input The Publisher:");
            publisher[0] = scan.next();
            System.out.println("Input The ISBN:");
            ISBN[0] = scan.next();
            System.out.println("Would you like to continue?(Yes/endinput)");
            String ans = scan.next();
            if (ans.equals("endinput") || (scan.equals("endinput"))) {
                Yes = false;
                System.exit(0);

            }
        }
    }

}

2 个答案:

答案 0 :(得分:1)

使用以下语法创建ArrayList:

    ArrayList<type> name = new ArrayList<type>();

一个例子可能是:

    //It's common practice to make these plural, to signify it's an array(list)
    ArrayList<String> titles = new ArrayList<String>();

使用以下方法将项目添加到ArrayList:

    //Keep in mind that the Object you're adding has to be the same type as the type you specified the ArrayList to be. 
    name.add(thingThatYouWantToAdd);

示例:

    titles.add("This is just a title");

我还希望改进您​​的代码: 不要在while循环中使用Yes作为布尔名称。我建议您使用running,因为它会立即明确while(running)的含义。

答案 1 :(得分:1)

扩展@ K-llojimans的回答:

Java中可能存在不同类型的列表。它们都可以保存在类似的变量中。此变量类型称为List。

例如:

List<String> myList = new ArrayList<String>();
List<String> myList2 = new LinkedList<String>();

此外,从Java 1.7开始,您无需在初始化期间显式声明列表类型。所以你的代码看起来像这样:

List<String> myList = new ArrayList<>();