roger666888 2008-08-08 00:02
浏览 274
已采纳

请教 ArrayList<int [ ]> 使用中出现的问题

现有一个这样的方法:
private static String[] a = { "a", "b", "c", };
// 申明一个二维数组(測試時使用)
private static String[][] b = { { "a", "b", "c" }, { "b", "b", "b" },
{ "c", "b", "c" } };
public ArrayList leftUnioele(String[] a, String[][] b) {
ArrayList mylist = new ArrayList ();
int[] mynum = new int[2];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (!(b[i][j] == a[j])) {// 判断a【j】是否与其对应的一列上的数值相等
mynum[0] = i;
mynum[1] = j;
mylist.add(mynum);
for (int[] out : mylist) {
System.out.println(out[0] + " " + out[1]);
}
}
}
}
return mylist;
}
测试后发现输出了重复的元素!
请问要删除这些重复的元素,用remove()方法怎么实现?或者用其他什么更好的方法能删除mylist对象中重复的元素!

  • 写回答

4条回答 默认 最新

  • wxjiaaa 2008-08-08 08:47
    关注

    经测试, 发现是你程序本身问题:
    1.你new出的mynum对象引用存在于for循环外,既,整个循环过程中你仅仅只有一个对象引用, 当然输出的是重复值;
    2.你的输出位置也有问题,应该放在循环外进行

    更改后代码如下:
    [code="java"]
    public class Main {
    private static String[] a = { "a", "b", "c", };
    // 申明一个二维数组(測試時使用)
    private static String[][] b = { { "a", "b", "c" }, { "b", "b", "b" },
    { "c", "b", "c" } };

    public ArrayList<int[]> leftUnioele(String[] a, String[][] b) {
        ArrayList<int[]> mylist = new ArrayList<int[]>();
    
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j < a.length; j++) {
                if (!(b[i][j] == a[j])) {// 判断a【j】是否与其对应的一列上的数值相等
                    int[] mynum = new int[2];
                    mynum[0] = i;
                    //System.out.print(mynum[0]);
                    mynum[1] = j;
                    //System.out.println(mynum[1]);
                    mylist.add(mynum);
                }
            }
        }
        for (int k = 0; k < mylist.size(); k++) {
            System.out.println(mylist.get(k)[0] + " " + mylist.get(k)[1]);
        }
        return mylist;
    }
    
    public static void main(String[] args) {
    
        Main main = new Main();
        List<int[]> list = main.leftUnioele(a, b);
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置