0

如何在方法 fillArrayList 中用相应的元素填充两个列表,用户必须输入值

import java.util.ArrayList;
import java.util.Scanner;

class Assignment1
{
    public static void main(String[] args)
    {
      ArrayList<Integer> list1 = new ArrayList<Integer>();
      ArrayList<Integer> list2 = new ArrayList<Integer>();

      System.out.println("Enter your lists = ");
      fillArrayList(list1,list2);

    }

    public static void fillArrayList(ArrayList<Integer> L1 ,ArrayList<Integer> L2 )
    {
           //don't know what to do here to fill two lists from the user , really need help

    }
4

4 回答 4

1

在您的 fillArrayList 中,您需要一个循环。由于 arraylist 的大小未确定,因此您将需要某种终止输入。如果所需的数字都是正数,那么简单的终止输入将是一个负数。换句话说,使用 while 循环,如果输入为负数,则停止循环。

为了从用户那里获取值,请使用 Scanner 类。获取整数所需的方法是 nextInt() 方法。

获得整数后,只需使用 add 方法将其添加到列表中。

于 2012-10-25T08:06:46.083 回答
1

我认为你应该修改你的fillArrayList签名,一次只填写一个列表。你可以为你的两个数组列表调用它两次。

所以,你的方法应该是这样的: -

public static void fillArrayList(ArrayList<Integer> myList) {
    /* Let the code be same as the one in @AmitD's post */

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter elemetns for List: Enter -1 to end ");

    while (scanner.hasNext()) {
        if (scanner.hasNextInt()) {
            int i = scanner.nextInt();
            if (i == -1)
                break;

            myList.add(i);
        } else {
            System.out.println("Invalid value Please enter integer");
            scanner.next();
        }
    }

}

然后在 main 方法之外将您的两个列表声明为实例变量。并List用于参考类型。

List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = new ArrayList<Integer>();

现在,从 main 方法中,您可以为每个列表调用此方法两次,如下所示:-

fillArrayList(list1);
fillArrayList(list2);

回到您的主要方法中,您可以打印您的列表,因为您在fillArrayList方法中所做的更改也会在那里反映出来。

System.out.println(list1);
System.out.println(list2);
于 2012-10-25T08:21:05.777 回答
0

您需要做的就是从用户那里获取输入,将其读取为intorInteger并调用ArrayList.add(E o)

于 2012-10-25T08:04:59.240 回答
0

您需要使用Scanner从用户那里获取输入并将其添加到列表中。

public static void fillArrayList(ArrayList<Integer> l1,
        ArrayList<Integer> l2) {
    // don't know what to do here to fill two lists from the user , really
    // need help
    Scanner scanner = new Scanner(System.in);

    System.out.println("Enter elemetns for List 1: Enter -1 to end ");

    while (scanner.hasNext()) {
        if (scanner.hasNextInt()) {
            int i = scanner.nextInt();
            if (i == -1)
                break;
            l1.add(i);
        } else {
            System.out.println("Invalid value Please enter integer");
            scanner.next();
        }
    }
    System.out.println("Your List :"+ l1);

    //Do same for List 2
}
于 2012-10-25T08:05:07.233 回答