现有一个这样的方法:
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对象中重复的元素!
请教 ArrayList<int [ ]> 使用中出现的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置