当前位置: 代码迷 >> Java相关 >> 求段代码。该如何解决
  详细解决方案

求段代码。该如何解决

热度:8449   发布时间:2013-02-25 21:48:05.0
求段代码。。。。!
有一个集合ls,里面有一些数据,还有一个集合lt,lt中存的全是整数,想去掉ls中lt存在的项,该怎么写。

比如:
Java code
                List ls=new ArrayList();            List lt=new ArrayList();            ls.add("a");            ls.add("b");            ls.add("c");            ls.add("d");            ls.add("e");            ls.add("f");                        lt.add(1);            lt.add(3);

要去掉ls的第一项和第三项,也就是ls.remove(1)和ls.remove(3),结果要是 ls=[a, c, e, f]
要是循环去的话,去掉第一项后,原来的第二项就变成第一项了,不知道该怎么写,新手求帮助!!

------解决方案--------------------------------------------------------
我测了一遍应该没问题了:
Java code
List<String> sl = new ArrayList<String>();        sl.add("a");        sl.add("b");        sl.add("c");        sl.add("d");        sl.add("e");        sl.add("f");        sl.add("g");        sl.add("h");        List<Integer> il = new ArrayList<Integer>();        il.add(1);        il.add(3);        il.add(9);                //将存放整数的list转换为数组        int[] i = new int[il.size()];        for (int j = 0; j < il.size(); j++) {            i[j] = il.get(j);        }                //将数组从大到小排序         int temp;        for (int m = 0; m < i.length; m++) {            for (int n = 0; n < i.length-m-1; n++) {                if(i[n]<i[n+1]){                    temp = i[n];                    i[n] = i[n+1];                    i[n+1] = temp;                }            }        }                //遍历删除        for (int j = 0; j < i.length; j++) {            //这里判断是因为9大于集合的size所以需要排除            if(i[j]<sl.size()){                sl.remove(i[j]);            }        }                System.out.println(sl.toString());
------解决方案--------------------------------------------------------
Java code
//仅供参考import java.util.*;class Test{    public static void main(String [] args) throws Exception    {                List ls=new ArrayList();            List lt=new ArrayList();            ls.add("a");            ls.add("b");            ls.add("c");            ls.add("d");            ls.add("e");            ls.add("f");                        lt.add("b");            lt.add("d");                        Iterator it=lt.iterator();                        String i=null;                        while(it.hasNext())                        {                            if(ls.contains(i=(String)it.next()))                                ls.remove(i);                            }                        System.out.println(ls);  }}
  相关解决方案