java - Arraylist 输出重复
问题描述
我正在使用冒泡排序制作排序程序。我想显示数组每次迭代的样子,所以如果输入是[5,4,3,2,1]
我希望它[4, 3, 2, 1, 5]
在第一次迭代中显示
public static void main(String[] args) {
Integer[] age = {5,4,3,2,1};
//int[][] ef = new int[age.length][];
ArrayList<Integer[]> fe = new ArrayList<Integer[]>();
for(int i=0;i<2;i++)
{
for(int ii=1;ii<5;ii++)
{
//System.out.println(Arrays.toString(age));
if(age[ii]<age[ii-1])
{
int x = age[ii];
age[ii]=age[ii-1];
age[ii-1]=x;
}
}
System.out.println("result "+Arrays.toString(age)+"\n");
fe.add(age);
}
//System.out.println(Arrays.toString(age));
for(Integer[] f : fe)
{
System.out.print(Arrays.toString(f));
}
}
我想要的输出是[4, 3, 2, 1, 5][3, 2, 1, 4, 5]
相反,我得到[3, 2, 1, 4, 5][3, 2, 1, 4, 5]
解决方案
您需要制作数组的副本,而不是多次添加相同的引用。
fe.add(age.clone());
推荐阅读
- javascript - 我正在尝试通过显示进度条定期更改图像?
- database - MongoDB - 从数组中的所有匹配对象中获取一个字段?
- arrays - array.length 函数在打字稿中没有输出正确的值
- react-native - 如何在 React Native JSX 中将两个用户连接到一个房间
- mysql - 使用 CONNECT 引擎和 unixODBC 从 MariaDB 连接到 MSSQL 时出现登录超时错误
- terraform - 您如何使用 Packer 和 Terraform 管理图像版本?
- javascript - 我可以轻松地将已安装的 Bit 组件“弹出”到本地项目中以删除包依赖吗?
- apache - 为什么我收到错误消息“参数不匹配:mod_evasive”?
- python - Python中贪心方法的硬币找零问题
- visual-studio - Windows 窗体和 Visual Studio 上的 Program.cs 之间的链接