【Java】List去重 / 删除ArrayList中重复元素,保持顺序 / 提取两个list中不同的元素
一、删除ArrayList中重复元素,保持顺序
/** * 删除ArrayList中重复元素,保持顺序 * * @param list 有重复的list * @return 去重后的list */ public static List removeDuplicateWithOrder(List list) { Set set = new HashSet(); List newList = new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext(); ) { Object element = iter.next(); if (set.add(element)) newList.add(element); } list.clear(); list.addAll(newList); return list; }
核心
二、提取两个list中不同的元素
/** * 提取两个list中不同的元素 * <p> * list1=["1","2","3"] * list2=["1","2","3","4"] * 则返回 ["4"] * * @param list1 * @param list2 * @return */ public static ArrayList<String> getDifference(ArrayList<String> list1, ArrayList<String> list2) { ArrayList<String> newData = new ArrayList<>(); for (String o : list1) { boolean isHave = true; for (String o1 : list2) { if (o.equals(o1)) { isHave = false; } } if (isHave) { newData.add(o); } } return newData; }
如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通