gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:54:28 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com