如何创建一个空数组?

时间:2014-04-14 18:39:43

标签: java arrays

我是新手,我在网上搜索并发现它有点令人沮丧,我得到的只是在java数组中无法重新调整大小。我只是想知道如何创建一个空数组,然后提示用户输入数字来填充数组?我不想定义像int[] myArray = new int[5];这样的区域的容量我想定义一个用户定义容量的空数组,例如 - 它们在数字后面输入数字,然后输入单词end来结束程序,然后他们输入的所有数字都将被添加到空数组中,数字量将是数组的容量。

6 个答案:

答案 0 :(得分:5)

当用户在命令行中输入数字时,您不能创建一个空数组,然后让它动态增长。您应该读取数字并将它们放在ArrayList中。 ArrayList不需要初始大小,并且动态增长。像这样:

public void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    BufferedReader console = 
            new BufferedReader(new InputStreamReader(System.in));
    while(true) {
        String word = console.readLine();
        if (word.equalsIgnoreCase("end") {
            break;
        } else {
            numbers.add(Integer.parseInt(word);
        }
    }

当然你没有使用while(true)并且你不会把它放在main中,但这仅仅是为了示例

答案 1 :(得分:4)

怎么样:

Scanner scan = new Scanner(System.in);
System.out.print("Enter the array size: ");
int size = scan.nextInt();
int[] yourArray = new int[size];
//can even initialize it
Arrays.fill(yourArray, -1);

答案 2 :(得分:1)

尝试ArrayList,它是一个动态数组 http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

答案 3 :(得分:1)

    import java.util.Scanner;


public class Ex {
public static void main(String args[]){
    System.out.println("Enter array size value");
    Scanner scanner = new Scanner(System.in);
    int size = scanner.nextInt();
    int[] myArray = new int[size];
    System.out.println("Enter array values");
    for(int i=0;i<myArray.length;i++){
        myArray[i]=scanner.nextInt();
    }
    System.out.println("Print array values");
    for(int i=0;i<myArray.length;i++){
        System.out.println("myArray"+"["+i+"]"+"="+myArray[i]);
    }
}
}

答案 4 :(得分:0)

从用户输入中获取n并:

int a [] = new int [n];

答案 5 :(得分:0)

由于您使用的是整数,因此可以通过以下示例尝试使用 ArrayList

ArrayList<Integer> integerListArray = new ArrayList<Integer>();