繁体   English   中英

Java 具有动态元素数的 int 数组

[英]Java int array with dynamic number of elements

以下是有效的 Java 语法吗? 即我想使用一个可以有动态元素数量的 int 数组?

int[] seperatorPositionArr = new int[0];

switch (someVar) {
    case "A":
        seperatorPositionArr = new int[] { 5,10,15,20,25};
        break;
    case "B":
        seperatorPositionArr = new int[] { 10,20};
        break;
    default:
        break;
}

for (int i = 0; i < seperatorPositionArr.length; i++) {
    x.insert(seperatorPositionArr[i] + i, '.');
}

因此,您想创建一个具有动态元素数量的数组,在您的情况下为 int 值。 您的解决方案的问题是,您必须从一开始就定义数组的大小,因为它是一个原始 int 数组。 要提供动态数组,我建议您使用列表。 列表可以存储各种数据类型,并且可以在程序的任何 state 中进行修改。 看看下面的例子。

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        List myDynList = new ArrayList<>();
        int dynamicAmountOfNumbers = 3; // 0 ... * (hardcoded, you could get the option as method parameter or user input)


        for (int i = 0; i < dynamicAmountOfNumbers; i ++) {
            myDynList.add(i);
        }

        System.out.println("Amount of values: " + dynamicAmountOfNumbers + " \nValues in array: ");
        for (Object values : myDynList) {
            System.out.println(values.toString());
        }


    }

}

如果你不想使用列表,试试这个(丑陋,在我看来):

public class Main {

    public static void main(String[] args) {

        int dynamicAmountOfNumbers = 3; // 0 ... * (hardcoded, you could get the option as method parameter or user input)

        int[] arr = new int[dynamicAmountOfNumbers];

        for (int i = 0; i < dynamicAmountOfNumbers; i ++) {
            arr[i] = i;
        }



        System.out.println("Amount of values: " + dynamicAmountOfNumbers + " \nValues in array: ");
        for (int j = 0; j < arr.length; j++) {
            System.out.println(arr[j]);
        }


    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM