/** * 从listA里删除listB里有的数据 * @param listA * @param listB * @return */ public static Listlistrem(List listA,List listB){ for (Iterator itA = listA.iterator(); itA.hasNext();) { String temp = itA.next(); // itA.next() 只能在外层循环里面调用1次 for (int i = 0; i < listB.size(); i++) { if (temp.equals(listB.get(i))) // 你不该在这里多次调用itA.next()的 { itA.remove(); } } } return listA; }
/** * 获取listA单方面的相同和不同 * @param listA 源数据 * @param listB 对比值 * @param listC 相同的 * @param listD 不同的 * @return list*/ public static List getDifferListByMap(List listA,List listB){ List listC = new ArrayList (); List listD = new ArrayList (); Map map = new HashMap (); for(String strA:listA){ map.put(strA.replace(" ", ""), 1); } for(String strB:listB){ Integer value = map.get(strB.replace(" ", "")); if(value != null){ listC.add(strB); continue; }else{ listD.add(strB); continue; } } return listD; }