首页 > 解决方案 > 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]

标签: javaarraylist

解决方案


您需要制作数组的副本,而不是多次添加相同的引用。

fe.add(age.clone());

推荐阅读