2014-11-05 72 views
2

我一直在努力尋找解決方案了幾個小時。在Java中爲一系列整數創建數組?

我的程序要求用戶輸入一個整數列表(例如:5 2 5 6 6 1)。 然後,我想創建一個數組並將每個整數連續存儲到其各自的數組索引中。

這是我的節目我遇到麻煩的部分(該方案旨在通過一種方法以後進行計算,但我不包括):

import java.util.Scanner; 
public class Assignment627 { 

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    int x = 0; 
    int[] list1Array = new int[1]; 

    System.out.println("Enter list1: "); 
    while (input.hasNext()){ 
     list1Array[x] = input.nextInt(); 
     x++; 
    } 

,你可以看到,我正在實例化數組「list1Array」,但問題是我不知道用戶將輸入多少個整數!如果只有知道輸入了多少整數的方法...任何幫助將不勝感激! 謝謝, 塞巴斯蒂安

+3

使用'的ArrayList '而不是int [] – Jens 2014-11-05 08:38:49

+0

'int [] list1Array = new int [1];'不會工作。使用'List list1Array = new List ();'。它會爲您創建一個空列表,您可以根據索引向其中添加數據。閱讀Java中的List。 – ha9u63ar 2014-11-05 08:40:42

+2

@hagubear你的意思是'列表 list = new ArrayList ();',你的答案是** C#** – EpicPandaForce 2014-11-05 08:41:58

回答

1
public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Enter elemnt size "); 
     int size = input.nextInt(); 

     int x = 0; 
     int[] list1Array = new int[size]; 

     for (int y = 0 ; y < size ; y++) { 
      System.out.println("Enter number"); 
      list1Array[x] = input.nextInt(); 
      x++; 
     } 

     System.out.println(Arrays.toString(list1Array)); 
    } 

輸出

Enter elemnt size 
4 
Enter number 
2 
Enter number 
3 
Enter number 
4 
Enter number 
2 
[2, 3, 4, 2] 
1

使用List,你的情況ArrayList將被罰款:

List<Integer> list1Array = new ArrayList(); 

while (input.hasNext()){ 
    list1Array.add(input.nextInt()); 
    x++; 
} 
5
import java.util.Scanner; 
public class Assignment627 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     //int[] list1Array = new int[1]; 
     List<Integer> list1Array = new ArrayList<>(); 

     System.out.println("Enter list1: "); 
     while (input.hasNext()){ 
      list1Array.add(input.nextInt()); 
     } 
    } 

} 

ArrayList,就像是一個rray沒有預定義的大小,並且它動態地改變它的大小;正是你在找什麼。你可以通過list1Array.size();

得到它的大小如果你堅持把最終結果作爲一個數組,那麼你可以稍後調用toArray() method of ArrayListThis post將會有所幫助。

1

你應該把輸入作爲字符串,然後使用string.split(「」);然後獲取表示每個數字的字符串數組。通過字符串獲取數組可以通過字符串標記來完成。

UPDATE

但你要小心,不要把其他的字符作爲數個分隔

+0

我喜歡你的答案,但編輯了一點。並投票。 :) – 2014-11-05 08:56:00

2

如果你真的想用Arrays,像這樣做:

import java.util.Scanner; 

public class Assignment627 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int x = 0; 
     int[] list1Array = new int[1]; 

     System.out.println("Enter list1: "); 
     while (input.hasNext()) { 
      list1Array[x] = input.nextInt(); 
      x++; 
      int[] temp = new int[list1Array.length + 1]; 

      for (int i = 0; i < list1Array.length; i++) { 
       temp[i] = list1Array[i]; 
      } 

      list1Array = temp; 
     } 
    } 
}