List合并去除其中的相同项

阅读更多

public static void main(String[] args) {
        // 第一种:List每remove掉一个元素以后,
        // 后面的元素都会向前移动,此时如果执行i=i+1,
        // 则刚刚移过来的元素没有被读取。
        Entity sbo1 = new Entity ();
        sbo1.setGifId("1");
        sbo1.setGiftName("kell");
        sbo1.setGiftAmout(11);
        sbo1.setGiftUnit("aaa");
        SchdGiftUsageBO sbo2 = new SchdGiftUsageBO();
        sbo2.setGifId("2");
        sbo2.setGiftName("kell");
        sbo2.setGiftAmout(22);
        sbo2.setGiftUnit("aaa");
        List list = new ArrayList();
        list.add(sbo1);
        list.add(sbo2);

        Entity sbo3 = new Entity ();
        sbo3.setGifId("3");
        sbo3.setGiftName("kell");
        sbo3.setGiftAmout(11);
        sbo3.setGiftUnit("aaa");
        Entity sbo4 = new Entity ();
        sbo4.setGifId("4");
        sbo4.setGiftName("kell");
        sbo4.setGiftAmout(11);
        sbo4.setGiftUnit("aaa");
        List list2 = new ArrayList();
        list2.add(sbo1);
        list2.add(sbo3);
        list2.add(sbo4);

        System.out.println("list.size()=" + list.size());
        // 每移除一个元素以后再把i移回来
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getGifId());
            if (((String) list.get(i).getGifId()).contains(list2.get(i).getGifId())) {
                list.remove(i);
                i--;
            }
        }
       
        System.out.println("after remove:list.size()=" + list.size());

    }

你可能感兴趣的:(List合并,去掉重复项)