gpt4 book ai didi

java - 在 Java 中将数组添加到队列(指针问题?)

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

我正在读取传感器并希望获得一定数量消息的平均值,因此我对它们进行求和,并且在添加新测量值时使用队列从总和中删除第一个测量值。

问题是队列没有像我预期的那样响应数组,它在某种程度上就像一个指针,所以当原始值更新时,历史记录也会随之改变。

import java.util.Queue;
Queue<int[]> q = new LinkedList();
int[] t = new int[1];
int len = 3;
void setup()
{
for(int i=0;i<len;i++){
t[0]=len-i;
q.add(t);
}
for(int i=0;i<len;i++){
print(q.remove()[0]);print(';');
}
}

这段代码的结果是:1;1;1;

预期结果是:3;2;1;

问题是,如何正确地将数组添加到队列?

最佳答案

您必须在 for 循环的每次迭代中实例化数组,否则将修改相同的引用

Queue<int[]> q = new LinkedList();
int len = 3;

void setup() {
for (int i = 0; i < len; i++) {
int[] t = new int[1];
t[0] = 5 - i;
q.add(t);
}

for (int i = 0; i < len; i++) {
print(q.remove()[0]);
print(';');
}
}

关于java - 在 Java 中将数组添加到队列(指针问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59137579/

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