Java中给List<String>去重的4种方式

Java中给List去重的4种方式

java 复制代码
List<String> list = new ArrayList<>();
		list.add("apple");
		list.add("banana");
		list.add("banana");
		list.add("apple");
		list.add("orange");
		list.add("orange");

		System.out.println("原始list:" + list);

		// 方式1: Stream 的 distinct() 方法
		List<String> list1 = list.stream().distinct().collect(Collectors.toList());
		System.out.println("方式1:" + list1);

		// 方式2: 使用 Set 去重
		Set<String> set = new HashSet<>(list);
		List<String> list2 = new ArrayList<>(set);
		System.out.println("方式2:" + list2);

		// 方式3: 使用 LinkedHashSet 去重并保留顺序
		Set<String> linkedHashSet =  new LinkedHashSet<>(list);
		List<String> list3 = new ArrayList<>(linkedHashSet);
		System.out.println("方式3:" + list3);

		// 方式4: 手动遍历去重
		List<String> list4 = new ArrayList<>();
		for (String item : list) {
			if (!list4.contains(item)) {
				list4.add(item);
			}
		}
		System.out.println("方式4:" + list4);
相关推荐
Lei活在当下5 小时前
先用起来,再理解,关于协程Coroutine应该知道的事
android·java·jvm
Java爱好狂.5 小时前
Java程序员体系化学习路线(2026最新版)
java·后端·java面试·java架构师·java程序员·java八股文·java学习路线
网络与设备以及操作系统学习使用者6 小时前
Linux与Windows核心差异深度解析
linux·运维·网络·windows·学习
tongluowan0076 小时前
以ReentrantLock为例解释AQS的工作流程
java·模板方法模式·aqs·reentrantlock
身如柳絮随风扬7 小时前
Java 项目打包与部署完全指南:JAR vs WAR,从构建到运行
java·firefox·jar
云烟成雨TD7 小时前
Spring AI Alibaba 1.x 系列【62】时光旅行(Time-Travel)
java·人工智能·spring
浩少7028 小时前
【无标题】
java·开发语言
一棵白菜8 小时前
java 学习
java
卷毛的技术笔记8 小时前
Java后端硬核实战:用Spring AI Alibaba+Redis给LLM装上“超强记忆中枢”
java·人工智能·redis·后端·spring·ai·系统架构
AKA__Zas9 小时前
初识多线程(3.0)
java·开发语言·学习方法