2013-07-23 143 views
0

我想構建一個程序,允許用戶輸入對象的長度和寬度,但是我選擇了很多次(我會構建更多的代碼來選擇循環的次數) 。每次循環迭代時,我都會遇到一些問題,如何獲取輸入並構造對象。謝謝!更改每次循環迭代分配的變量

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

    for (int i = 1; i <= 2; i++) 
    { 
     System.out.println("Enter length" + i + ": "); 
     int length i = console.nextInt(); 

     System.out.println("Enter length" + i + ": "); 
     int width i = console.nextInt(); 

     OBJECT instance1 = new OBJECT(length1, width1); 
    } 


} 
+1

OBJECT不應該全部大寫。無論如何,我會使用一個數組。第三件事:它應該是'int length = console.nextInt();'。我是無關的。 – hexafraction

+0

OBJECT在我的代碼中並沒有全部大寫,只是將其從我不熟悉的實際名稱中改爲了,因爲我不包括該類。將長度和寬度更改爲數組是可行的,但是可以使用類構造函數完成嗎? –

+0

是的,構造函數可以接受零個或多個對象或基元(不包括僅在內部使用的return_address)。一個數組是一個對象。 – hexafraction

回答

0

您需要了解如何使用集合API,特別ListLinkedListArrayList。所以,你的代碼將變成:

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

    final List<Area> objectList = new ArrayList<Area>(); 
    for (int i = 0; i < 2; i++) { 
     System.out.println("Enter length" + (i + 1) + ": "); 
     final int length = console.nextInt(); 

     System.out.println("Enter width" + (i + 1) + ": "); 
     final int width = console.nextInt(); 

     final Area instance = new Area(length, width); 
     objectList.add(instance); 
    } 
} 

我選擇ArrayList這裏,因爲它通常是更好的執行兩個中的一個(但不要求任何一個的功能性比較小名單,都將盡) 。

+0

ArrayList幾乎總是一個更好的選擇。 –

+0

@JBNizet好吧,改變它。如上所述,對於小列表(用戶輸入將是一個)並不重要,但是習慣使用'ArrayList'可能更好。 –

1

你可以使用ArrayList/LinkList,如果你的條目很大,那麼只能用於LinkList。

Scanner console = new Scanner(System.in); 
System.out.println("Enter how many records you want: "); 
int j = console.nextInt(); //"Loop will run "+ j +" times" 
List<ObjectName> objectList = new ArrayList<ObjectName>(); 
int length = 0; 
int width = 0; 

for (int i = 1; i <= j; i++) 
{ 
    System.out.println("Enter length" + i + ": "); 
    length = console.nextInt(); 
    System.out.println("Enter width" + i + ": "); 
    width = console.nextInt(); 
    ObjectName instance1 = new ObjectName(length, width); 
    objectList.add(instance1); 
} 
+0

*如果您的條目很大,那麼只有去LinkList *:否。ArrayList幾乎總是一個更好的選擇。哦,它是* LinkedList *。 –

+0

這絕對不是'ArrayListList'? –

+0

當我這樣做,然後嘗試在ArrayList上使用indexOf時,它總是返回一個int而不是一個對象。 –

相關問題