List去除重复元素

1.使用LinkedHashSet删除arraylist中的重复数据(有序)

// 创建List
List<String> words= Arrays.asList("a","b","b","c","c","d");
// 将ArrayList转为LinkedHashSet
LinkedHashSet<String> set=new LinkedHashSet<>(words);
// 将LinkedHashSet转回ArrayList
List<String> newWords = new ArrayList<>(set);
// 控制台打印
System.out.println(newWords); // [a, b, c, d]

2.使用java8新特性stream进行List去重

// 创建List
List<String> words= Arrays.asList("a","b","b","c","c","d");
// 用Java8的stream用distinct()方法去重
List<String> newWords = words.stream().distinct().collect(Collectors.toList());
// 控制台打印
System.out.println(newWords); // [a, b, c, d]

3.使用List的contains方法for循环遍历

// 创建List
List<String> words= Arrays.asList("a","b","b","c","c","d");
// 创建新的List
List<String> list= new ArrayList<>();
for (String s:words) {
	// 不包含则添加
	if (!list.contains(s)) {
		list.add(s);
	}
}
// 控制台打印
System.out.println(list); // [a, b, c, d]

4.List实体去重

// Room(实体)
 Set<Room> set = new TreeSet<Room>(new Comparator<Room>() {
	@Override
	public int compare(Room o1, Room o2) {
	// 此处为排序,字符串则按照asicc码升序排列
	// o1.getId() --getId为根据实体中的ID排序
	return o1.getId().compareTo(o2.getId());
	}
});
// 也可用Lambda表达式优化 方法二选一
// Set<Room> set = new TreeSet<>(Comparator.comparing(Room::getId));
set.addAll(room);
List<Room> roomList = new ArrayList<Room>(set);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值