当前位置: 代码迷 >> J2SE >> 【面试题】删除两个数组中相同的元素…你有什么简便方法吗?该怎么处理
  详细解决方案

【面试题】删除两个数组中相同的元素…你有什么简便方法吗?该怎么处理

热度:27   发布时间:2016-04-24 12:23:55.0
【面试题】删除两个数组中相同的元素…………你有什么简便方法吗?
例如有如下2个list:
list1{1,2,3,4,4,5}
list2{3,3,4,5,6,6,7}

程序运行后要求两个list内容如下
list1{1,2}
list2{6,6,7}

我只能想到一个记住下标,然后挨个remove(index)的方法,觉得太笨了,还有什么好方法吗??

------解决方案--------------------
Java code
        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("4");        l1.add("5");        l2.add("3");        l2.add("3");        l2.add("4");        l2.add("5");        l2.add("6");        l2.add("6");        l2.add("7");        Object[] o = Arrays.copyOf(l1.toArray(), l1.size());        l1.removeAll(l2);        List<Object> l3 = Arrays.asList(o);        l2.removeAll(l3);        System.out.println(l1);        System.out.println(l2);
------解决方案--------------------
List listOne=new ArrayList<Integer>(Arrays.asList(1,2,3,4,4,5));
List listTwo=new ArrayList<Integer>(Arrays.asList(3,3,4,5,6,6,7));
listOne.removeAll(listTwo);
System.out.println(listOne);

//[1, 2]

这样就可以了!
  相关解决方案