2012-10-25 39 views
0

我怎么能填补相应元素的两个列表方法fillArrayList用户必须输入值方法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 

    } 
+1

用户如何输入输入? – Azodious

+0

你为什么添加'javascript'标签? – home

+3

你还没做任何事情呢?先尝试一下,如果你失败了,那么我们很乐意帮助你。 –

回答

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(); 
     } 
    } 

} 

然后宣告你的两个列表作为实例变量,主要的方法之外。并使用List作为参考类型。现在

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

,从主要方法,你可以两次调用此方法像这样每个列表: -

fillArrayList(list1); 
fillArrayList(list2); 

而且回到你的主要方法,你可以打印清单,作为变更你在fillArrayList做的方法也会在那里体现出来。

System.out.println(list1); 
System.out.println(list2); 
+0

现在好了我知道如何填写两个数组列表列表中的一种方法,谢谢你谢谢你,谢谢你,ü拯救我的生命:D – rain

+0

@rain。别客气。请记住,您不能用一种方法填充两个数组列表。你只需填写一个数组列表。你调用这个方法两次。 –

+0

使用-1结束它是一个糟糕的主意,因为他们可能想要在列表中放入-1。您可能能够检查他们是否完成输入/结束行/输入空行。 –

0

所有你需要做的是采取从用户的输入,阅读作为intInteger并调用ArrayList.add(E o)

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 
} 
+0

你是最好的,谢谢 – rain

1

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

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

一旦你得到了整数,只需使用方法add方法将它添加到列表中。