如何用方法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
}
答案 0 :(得分:1)
在fillArrayList中,您需要一个循环。由于arraylist的大小不确定,因此您需要某种终止输入。如果所需的数字都是正数,则容易终止输入将为负数。换句话说,使用while循环,如果输入为负,则停止循环。
要从用户获取值,请使用Scanner类。获取整数所需的方法是nextInt()方法。
获得整数后,只需使用add方法将其添加到列表中即可。
答案 1 :(得分:1)
我认为你应该修改你的fillArrayList
签名,一次只填一个列表。你可以为你的两个arraylist调用它两次。
所以,你的方法应该是: -
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);
答案 2 :(得分:0)
您需要做的就是接受用户的输入,将其读作int
或Integer
,然后致电ArrayList.add(E o)
答案 3 :(得分: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
}