簡體   English   中英

有沒有辦法在 Java 中創建一個空數組,但可以有無限量

[英]Is there a way to create an array in Java that is empty, but can have an indefinite amount

我正在 java 中開發一個程序,該程序將所有用戶輸入的數字帶入 -99 循環,我正在使用 Arrays 但我無法知道將輸入多少個數字。 我也是 java 的新手,我不太了解。 ` 進口 java.util.*; 公共 class ArrayComputing {

public  int[] makeArray()
{
    int[] nums = //where I need help
    int numArray;
    int i =0;
    Scanner input = new Scanner(System.in);
    boolean negative99=false;
    while (negative99==false)
    {
    i++;
    System.out.println("Enter a number");
    numArray= input.nextInt();
    if (numArray==-99)
    {
        break;
    }
    else    
    {
    nums[i]=numArray;
    System.out.println(Arrays.toString(nums));
    }
    
    }
    return nums;
    
    
    
}

} `

如果您使用 List(特別是 ArrayList),它將滿足您的需求。 它可以在您將成員添加到列表時擴展,並且不會用完空間。 與 Array 不同,您需要提前分配空間並需要知道預期有多少成員。

您要的是Dynamic Array抽象數據類型的一種行為,其中一個流行的實現是 Java 中的ArrayList class

對於原始/內置new int[]{..}數組, Java Specification (以及大多數其他語言)要求您分配 memory 的特定段,為此,您需要提供大批。

在您的情況下, ArrayListLinkedList會有所幫助。

數組是一種定義大小的結構,據我所知,它不能直接擴展或減小大小。

但是,您可以使用大小未定義的 ArrayList。

ArrayList<Integer> numberList = new ArrayList();

然后,您可以向其中“添加”值:

numberList.add(value);

The usage of ArrayList may be found here: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

您可以這樣做,直到您的計算機用完存儲 ArrayList 中包含的值的資源。

不幸的是,數組的長度不能為負。 它將拋出 NegativeArraySizeException。

無論如何,您可以先讓用戶定義一個長度,然后您可以創建一個具有此大小的長度。

    public static  int[] makeArray() {
    
    Scanner input = new Scanner(System.in);
    
    System.out.print("> ");
    int in = input.nextInt();
    int[] nums = new int[in];
    
    int numArray;
    int i =0;
    //...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM