2012-10-25 63 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方法將它添加到列表中。