gpt4 book ai didi

java - 数组列表和空值

转载 作者:行者123 更新时间:2023-11-29 03:25:26 28 4
gpt4 key购买 nike

我有这个 ArrayList

[21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]

以这种方式创建

for (int i = 0; i < number; i++) {
ArrayList.add(21+i);
}

在我的代码中,我必须在不改变其他值位置的情况下从中删除某些值,有时还返回这些值。我试过

ArrayList.add(removedValue, null);

所以我有这样的东西

ArrayList = [21, 22, 23, null, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]

但是这样我就不能用集合对数组进行排序了。

在不破坏阵列的情况下,我还能做些什么来解决这个问题?

最佳答案

您应该实现自己的 Comparator<Integer>并用它排序。

下面的代码使用了一个比较器来处理两个 Integer在其中任何一个为 null 的情况下,对象相等或者两者都是 null , 从而导致索引没有变化。

Integer[] numbers = new Integer[] { 21, null, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36 };

ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(numbers));

Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer arg0, Integer arg1) {

if (arg0 == null || arg1 == null)
return 0;
return arg0 - arg1;

}
});

关于java - 数组列表和空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312876/

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