java - 如何从预先存在的数组创建数组?

标签 java arrays

java新手,我正在尝试创建一个程序/方法,它将接受一个int数组,并返回另一个int数组,但它用元素的值替换索引的值。 (示例 {2,1,3} 将返回 {0,0,1,2,2,2}

public static void main(String[] args) {

    int[] pracArray = {2, 1, 3};

    int sum = 0;

    for (int i = 0; i < pracArray.length; i++)
    {
        sum = sum + pracArray[i];
    }

    System.out.println("Amount of array indexes: " + sum);

    int[] newArray = new int[sum];

    System.out.println(Arrays.toString(pracArray));

    for (int i = 0; i < pracArray.length; i++)
    {

        for (int j = 0; j < pracArray[i]; j++)
        {
            newArray[j] = i;
        }
    }
    System.out.println(Arrays.toString(newArray));
}

}

目前我得到[2,2,2,0,0,0]。我尝试更改每个 for 循环迭代的次数,但无济于事。我还尝试使 newArray 的元素等于计数器( int count = 0; 并在 for 循环中使用 count++ ),因为新数组的值始终为 0 - 无论运行多少次。

最佳答案

鉴于数组的长度为 3,外部“i”循环将迭代值 0、1、2。这意味着您的内部“j”循环永远不会写入索引 3,4,5(因此它们在输出中为 0),以及为什么前 3 个索引设置为“2”(2 是“我循环)。试试这个...

int h = 0;

for (int i = 0; i < pracArray.length; i++)
{
    for (int j = 0; j < pracArray[i]; j++)
    {
        newArray[h] = i;

        h++;
    }
}

关于java - 如何从预先存在的数组创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60573399/

相关文章:

java - 在目录中搜索 wav 文件

java - OOP - 谁可以访问公共(public)、私有(private)、 protected 变量?

java - 带着 Spring 的烦恼 Swing

在正常模式下运行时,java 在命令提示符下不被识别为内部或外部命令

java - Spring JPA - 查找依据和排序依据

python - 如何在 numpy 中搜索满足条件的索引?

php - 将 MySQL 列转换为自定义数组字符串

javascript - 使用 JavaScript 在 Canvas 上制作爆炸时遇到问题

c - 给定数组中的最小奇数

C# 将 JSON 对象转换为数组