2013-07-23 54 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而不是一个对象。 –

相关问题