两个list,都放了几百个int型数删除连个list当中相同的数字。求思路。说个最容易想到的吧:
listA
listB Iterator<Integer> it = listA.iterator();
while (it.hasNext()) {
int tmp = it.next();
if (listB.contains(tmp)) {
listB.remove(listB.indexOf(tmp));
it.remove();
}
}有更好的方法吗?
listA
listB Iterator<Integer> it = listA.iterator();
while (it.hasNext()) {
int tmp = it.next();
if (listB.contains(tmp)) {
listB.remove(listB.indexOf(tmp));
it.remove();
}
}有更好的方法吗?
解决方案 »
- 我想将一个list里的数据飞开,每20条为一个单元,应该怎么做
- 角谷猜想的证明
- 很简单的程序,如果写测试案例,你会怎样写
- JAVA中的网络包与ping中的包一样吗
- 这种界面是用什么技术做的
- JTextField的类型怎样才能转成double?
- java 数字转换 如何转换成 字符串呀
- swing JTable可以直接打开Url链接地址吗
- 如何改变JBuilder生成的头注释风格
- 用delphi 写c/s模式二年多时间,现在马上有个项目用java,公司叫准备准备,请各位大虾提点帮忙提点怎么学习java的建议吧,参与者都有分,不够再加!
- 求解一个有关字符串的发牌问题
- 大家来找茬,题目很简单但是问题出在哪呢
collections.addAll(l1,1,2,3,4,5);list l2 = new arraylist();
collections.addAll(l1,1,6,7,4,5);set s =new hashset();
s.addAll(l1);
s.addAll(l2);s里就是没有重复的……
collections.addAll(l2,1,6,7,4,5);
能避免使用listB.indexOf(tmp),
把listB.remove(listB.indexOf(tmp));
改成
listB.remove((Object) tmp);
应该可以提高点效率。当然使用泛型更直观。
List<Integer> listA = new ArrayList<Integer>();
List<Integer> listB = new ArrayList<Integer>(); listA.add(1);
listA.add(2);
listA.add(3); listB.add(2);
listB.add(3);
listB.add(6); Iterator<Integer> it = listA.iterator();
while (it.hasNext()) {
int tmp = it.next();
if (listB.contains(tmp)) {
listB.remove(new Integer(tmp));
it.remove();
}
}
比如你的LISTA里面有两个2,LISTB中有一个。2
你的第一次循环会删掉A的1个2.和B的2.
那到第二个2怎么办。