如何从数组列表中打印元素

时间:2013-10-08 16:25:26

标签: java arrays printing element

到目前为止,我在网上寻求帮助,没有任何对我有用。这就是我现在所拥有的,你能告诉我它有什么问题吗?

import java.util。*;

class employeeProgram{

    public static void main(String[] args){

            for (int count = 0; count < 1; ){

                    Scanner input = new Scanner(System.in);

                    ArrayList<String> employeeNames = new ArrayList<String>();

                    String commnd;

                    print("What would you like to do? (Add, Remove, List, Exit): ");

                    commnd = input.next();

                    if ("Add".equals(commnd)){

                            print("Enter the name of the employee you'd like to add to the list: ");
                            employeeNames.add(input.next());


                    } else if ("Remove".equals(commnd)){

                            print("Enter the name of the employee you'd like to remove from the list: ");

                            employeeNames.remove(input.next());

                    } else if ("List".equals(commnd)){

                            for (int j = 0; j < employeeNames.size(); j++){

                                    println(employeeNames.get(j));
                                    println(j);

                            }


                            //println(employeeNames);

                    } else if ("Exit".equals(commnd)){

                            input.close();
                            break;

                    } else {

                            println("Invalid command.");

                    }
            }
    }
    public static void println(Object x){

            System.out.println(x);

    }
    public static void print(Object x){

            System.out.print(x);

    }

}

for循环没有开始,我知道的很多,因为“println(j)”也没有工作。当我尝试我已经注释掉的部分时,我从打字列表中得到的只是“[]”而没有别的。我是初学者,这是我使用ArrayLists的第一个程序,所以提前感谢任何决定帮助我的人:)

5 个答案:

答案 0 :(得分:2)

在第一个employeeNames循环之外定义for列表。每次迭代循环都会重新初始化ArrayList。

答案 1 :(得分:0)

for(int count = 0; count&lt; 1; count ++)

答案 2 :(得分:0)

你需要定义你的循环的arraylist outode,否则每次迭代都会创建一个新的arrayList,之前对arraylist的更改是垃圾收集。

import java.util.*;

class employeeProgram{

    public static void main(String[] args){

            ArrayList<String> employeeNames = new ArrayList<String>();

            for (int count = 0; count < 1; ){

                    Scanner input = new Scanner(System.in);



                    String commnd;

                    print("What would you like to do? (Add, Remove, List, Exit): ");

                    commnd = input.next();

                    if ("Add".equals(commnd)){

                            print("Enter the name of the employee you'd like to add to the list: ");
                            employeeNames.add(input.next());


                    } else if ("Remove".equals(commnd)){

                            print("Enter the name of the employee you'd like to remove from the list: ");

                            employeeNames.remove(input.next());

                    } else if ("List".equals(commnd)){

                            for (int j = 0; j < employeeNames.size(); j++){

                                    println(employeeNames.get(j));
                                    println(j);

                            }


                            //println(employeeNames);

                    } else if ("Exit".equals(commnd)){

                            input.close();
                            break;

                    } else {

                            println("Invalid command.");

                    }
            }
    }
    public static void println(Object x){

            System.out.println(x);

    }
    public static void print(Object x){

            System.out.print(x);

    }

}

此外,我将对此程序进行一些基本更改,首先 - 应该使用for循环,您知道将执行多少次迭代。在你的情况下,while循环(或者更好的仍然是do-while循环)更适合。

最后创建一个衬里函数来封装system.out.print和println似乎比必要的更多努力。

答案 3 :(得分:0)

每次提出问题时,您都在创建一个新的ArrayList。在初始循环之外创建它。

ArrayList<String> employeeNames = new ArrayList<String>();

答案 4 :(得分:0)

我会尝试别的东西而不是for循环:

虽然你在这里可能在技术上有用,但是...循环用于确定性过程。在这里,您将它用作无限循环,您希望稍后强制中断。这很危险,可能会导致错误。

我会改变这个:

for (int count = 0; count < 1; ){

到此:

 bool done = false;
 while(!done) {

然后,稍后,当你想爆发时。发出这一行:

 done = true;