热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java-在ArrayList中插入多个不同数组的方法

本文探讨了在Java中如何正确地将多个不同的数组插入到ArrayList中,避免所有数组在插入后变得相同的问题。我们将分析代码中的问题,并提供解决方案。

在Java编程中,您可能会遇到需要将多个数组插入到ArrayList中的情况。然而,如果处理不当,可能会导致所有插入的数组最终具有相同的值。本文将详细解释这一现象及其解决方法。

以下是原始代码示例:

public static void main(String[] args) {
ArrayList list = new ArrayList<>();
int[] parent = new int[4];
for (int i = 0; i <2; i++) {
parent[0] = rand(4,1);
parent[1] = rand(6, -2);
parent[2] = rand(2, 1);
parent[3] = rand(-1, -2);
list.add(parent);
}
// 打印父数组
for (int i = 0; i <2; i++) {
int[] arr;
arr = list.get(i);
for (int j = 0; j System.out.println("Value " + arr[j]);
}
System.out.println("Next Array");
}
}

Rand函数用于生成指定范围内的随机数:

public static int rand(int max, int min) {
Random rand = new Random();
return rand.nextInt(max + 1 - min) + min;
}

运行此代码时,您会发现两个数组的值完全相同。这是因为您创建了一个数组并多次修改其内容,然后将其添加到列表中。因此,列表中的所有引用都指向同一个数组实例。

要解决这个问题,您应该在每次循环中创建一个新的数组实例,而不是重复使用同一个数组。修改后的代码如下:

for (int i = 0; i <2; i++) {
int[] parent = new int[4];
parent[0] = rand(4,1);
parent[1] = rand(6, -2);
parent[2] = rand(2, 1);
parent[3] = rand(-1, -2);
list.add(parent);
}

通过这种方式,每次循环都会创建一个新的数组实例,并将其添加到列表中,确保每个数组的内容都是独立的。这样可以避免所有数组在插入后变得相同的问题。


推荐阅读
author-avatar
倒转流年1990
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有