日期:2014-05-20  浏览次数:20710 次

两个list 的比较删除的算法问题
现在有list1 和list2两个list,要求是list1中的数据必须是在list2中,不在list2中的数据删除得到新的list1,我不想用两个for循环,还有别的比较好的算法吗,请教各位。

------解决方案--------------------
那你就用
org.apache.commons.collections.ListUtils.intersection(java.utils.List arg1,java.utils.List arg2)呗。。。

唉。。。
------解决方案--------------------
不好意思 没看清楚题目
那么改用retainAll方法。

Java code

public class ListRemove {

    public static void main(String[] args) {
        List<String> list=new ArrayList<String>();
        List<String> subList=new ArrayList<String>();
        list.add("0");
        list.add("1");
        list.add("2");
        list.add("3");
        subList.add("0");
        subList.add("2");
        list.retainAll(subList);
        for(String str:list){
            System.out.println(str);
        }
    }

}