当前位置: 代码迷 >> J2SE >> 分享-判断两个List中的元素是不是相同,递归
  详细解决方案

分享-判断两个List中的元素是不是相同,递归

热度:590   发布时间:2016-04-23 20:40:56.0
分享-判断两个List中的元素是否相同,递归
自己写了一个判断两个List中相同元素的方法,以前咱们普遍用的都是for循环,但是现在考虑到效率问题感觉那样确实有点繁琐,所以分享自己写的小代码,but下面这段代码执行的时候自己DeBug了一下,在return时,执行很多遍才return出去,不知道为什么?牛人帮忙解释一下吧。。。


public class Digui {

public static void main(String[] args) {
List<String> l1 = new ArrayList<String>();
List<String> l2 = new ArrayList<String>();
l1.add("1");
l1.add("2");
l1.add("3");
l1.add("4");
l1.add("5");
l1.add("6");


l2.add("3");
l2.add("5");
l2.add("7");
Digui d = new Digui();
List<String> l = d.bian(l1,l2);
System.out.println(l);
}
int i = 0;
int j = 0;
List<String> list = new ArrayList<String>();
public List<String> bian(List<String> list1,List<String> list2){
if(j==list2.size()){
j=0;
i++;
}
if(i==list1.size()){
return list;
}
if(list1.get(i).equals(list2.get(j))){
list.add(list1.get(i));
j++;
bian(list1,list2);
}else{
j++;
bian(list1,list2);
}

return list;
}
}

------解决方案--------------------
不妨试试这种方法:
public static void main(String[] args) {
List<String> l1 = new ArrayList<String>();
        List<String> l2 = new ArrayList<String>();
        l1.add("1");
        l1.add("2");
        l1.add("3");
        l1.add("4");
        l1.add("5");
        l1.add("6");
         
         
        l2.add("3");
        l2.add("5");
        l2.add("7");
        List<String >l3=new ArrayList<String>(l1);
        l3.removeAll(l2);
        l1.removeAll(l3);
        System.out.println(l1);
}
  相关解决方案