gpt4 book ai didi

java - 数组列表无法正常工作

转载 作者:行者123 更新时间:2023-12-01 21:34:19 25 4
gpt4 key购买 nike

我在 Android Studio 中有这段代码:

           for (ArrayList<Bitmap> arr : imgs) {
for (Bitmap img : arr) {
if (img != null) {
arrayList.add(img.getHeight());
}
else {
arrayList.add(null);
}
}
heights.add(arrayList);
arrayList.clear();
}

提前声明和填充 imgs,并将高度声明为

ArrayList<ArrayList<Integer>>

我得到的是:

[[58]]
[[null], [null]]
[[75], [75], [75]]
[[null], [null], [null], [null]]
[[1200], [1200], [1200], [1200], [1200]]
[[960], [960], [960], [960], [960], [960]]
[[960], [960], [960], [960], [960], [960], [960]]
[[612], [612], [612], [612], [612], [612], [612], [612]]
[[1632], [1632], [1632], [1632], [1632], [1632], [1632], [1632]]

等等。每次它不会将值添加到数组中,而是用新值替换其中的所有值。怎么了?

最佳答案

heights.add(arrayList);
arrayList.clear();

您始终将相同的 arrayList 实例添加到 heights,然后清除它,因此所有先前的值都会丢失。

您应该在外循环的每次迭代中创建一个新的 ArrayList 实例。

       for (ArrayList<Bitmap> arr : imgs) {
arrayList = new ArrayList<Integer> ();
for (Bitmap img : arr) {
if (img != null) {
arrayList.add(img.getHeight());
}
else {
arrayList.add(null);
}
}
heights.add(arrayList);
}

关于java - 数组列表无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37099619/

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