我可以拥有一个没有限制的数组,因为我通过扫描仪获取输入吗?

时间:2014-11-05 21:04:16

标签: java arrays

好的......我想知道我是否可以这样做:

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

     for (int i = 0; i < numbers.length; i++)
     {
         System.out.println("Please enter number");
         numbers[i] = input.nextDouble();
     }
}

但我不希望它被限制在0-5。例如,我可以输入1 2 3 4 5 6 7 8 9 10 11

的用户输入

这可能吗?怎么做?

5 个答案:

答案 0 :(得分:1)

Apache ArrayUtils让你可以添加&#34;新元素:

https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/ArrayUtils.html

使用旧版本创建新数组并添加新元素。然后你可以这样做:

array = ArrayUtils.add(array, newElement)

答案 1 :(得分:1)

输入值console,无限制并存储在数组中:

        Scanner input = new Scanner(System.in);
        String s;
        ArrayList<Double> numbers= new ArrayList<>();
        System.out.print("Please enter number: ");           
        s=input.nextLine();
        String [] strnum = s.split("\\s+");

        int j=0;
        while(j<strnum.length){
            numbers.add(Double.parseDouble(strnum[j++]));
        }   
        for (Double n : numbers)
            System.out.println(n);    

答案 2 :(得分:0)

尝试ArrayList课程。添加新项目时,它的大小将会扩大。

使用示例:

ArrayList<Integer> myList  = new ArrayList<Integer>();
myList.add(5);
int a = myList.get(0); 

答案 3 :(得分:0)

阵列有限。您应该使用ArrayList类。

    import java.util.*;

//...

List<String> list = new ArrayList<String>();
list.add("Hello!");
list.add("How are you?");

System.out.println(list.get(0)); // prints "Hello!"

for (String s : list) {
    System.out.println(s);
} // prints "Hello!", "How are you?"

 ArrayList<String> strings = new ArrayList<String>();
strings.add("String1");
strings.add("String2");

// To access a specific element:
System.out.println(strings.get(1));
// To loop through and print all of the elements:
for (String element : strings) {
    System.out.println(element);
}

ArrayList类扩展了AbstractList并实现了List接口。 ArrayList支持可以根据需要增长的动态数组。

标准Java数组具有固定长度。创建数组后,它们无法增长或缩小,这意味着您必须事先知道数组将包含多少元素。

使用初始大小创建数组列表。超过此尺寸时,将自动放大该集合。删除对象后,阵列可能会缩小。

ArrayList类支持三个构造函数。第一个构造函数构建一个空数组列表。

ArrayList( )

以下构造函数构建一个使用集合c。

的元素初始化的数组列表
ArrayList(Collection c)

以下构造函数构建具有指定初始容量的数组列表。容量是用于存储元素的基础数组的大小。

当元素添加到数组列表时,容量会自动增长。

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

答案 4 :(得分:-1)

是的,您可以使用以下代码:

   ArrayList<Double> list = new ArrayList();
   boolean condition = true; 
   Scanner input = new Scanner (System.in);
   while(condition){
       list.add(input.nextDouble());
       System.out.println("Do you want to continue Y/N ?");
       condition = (input.nextLine().charAt(0) == 'Y');
   }