求List,Map,Set的交集,并集与差集

应用场景

  在大数据的背景下,我们在做项目的时候往往使用单表在数据库中查询数据,然后多表在service层进行关联操作。比如说下面的情况就是如此,在这里我并不是展开讲多表之间如何实现解耦的单表查询操作,我只是针对其中的涉及多表关联的集合操作进行讲解。

这里写图片描述

ListMap集合操作

数据准备

List<String> list1 = Lists.newArrayList("a","b","c","f");
List<String> list2 = Lists.newArrayList("c","d","e","f");

交集

@Test
public void testIntersection(){
    list1.retainAll(list2);
    List<String> list3 = Lists.newArrayList("c","f");
    Assert.assertEquals(list3,list1);
    list1.forEach( str -> log.info("打印出的字符为:{}",str));
}

  执行结果:

[13:31:43.729] INFO  com.baishun.login.setOperation.ListOperation 24 lambda$testIntersection$0 - 打印出的字符为:c
[13:31:43.737] INFO  com.baishun.login.setOperation.ListOperation 24 lambda$testIntersection$0 - 打印出的字符为:f

并集

@Test
public void testUnion(){
    list1.addAll(list2);
    List<String> list3 = Lists.newArrayList("a","b","c","f","c","d","e","f");
    Assert.assertEquals(list3,list1);
    list1.forEach( str -> log.info("打印出的字符为:{}",str));
}

  执行结果:

[13:32:53.028] INFO  com.baishun.login.setOperation.ListOperation 35 lambda$testUnion$1 - 打印出的字符为:a
[13:32:53.035] INFO  com.baishun.login.setOperation.ListOperation 35 lambda$testUnion$1 - 打印出的字符为:b
[13:32:53.035] INFO  com.baishun.login.setOperation.ListOperation 35 lambda$testUnion$1 - 打印出的字符为:c
[13:32:53.036] INFO  com.baishun.login.setOperation.ListOperation 35 lambda$testUnion$1 - 打印出的字符为:f
[13:32:53.037] INFO  com.baishun.login.setOperation.ListOperation 35 lambda$testUnion$1 - 打印出的字符为:c
[13:32:
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
1. ListList 是一个有序的序列,可以包含重复的元素。可以使用索引来访问和修改元素。 使用方法: 创建一个 List,可以使用 [] 或者 list() 函数。 ```python my_list = [1, 2, 3, 4, 5] my_list = list(range(5)) ``` 访问 List 中的元素,可以使用索引。 ```python my_list[0] ``` 修改 List 中的元素,可以使用索引。 ```python my_list[0] = 10 ``` 添加元素到 List 中,可以使用 append() 函数。 ```python my_list.append(6) ``` 删除 List 中的元素,可以使用 del 或者 remove() 函数。 ```python del my_list[0] my_list.remove(1) ``` 2. MapMap 是一个键值对的集合,每个键对应一个值。可以使用键来访问和修改值。 使用方法: 创建一个 Map,可以使用 {} 或者 dict() 函数。 ```python my_map = {'name': 'Tom', 'age': 20} my_map = dict(name='Tom', age=20) ``` 访问 Map 中的值,可以使用键。 ```python my_map['name'] ``` 修改 Map 中的值,可以使用键。 ```python my_map['name'] = 'Jerry' ``` 添加键值对到 Map 中,可以使用键和值。 ```python my_map['gender'] = 'Male' ``` 删除 Map 中的键值对,可以使用 del 或者 pop() 函数。 ```python del my_map['age'] my_map.pop('name') ``` 3. SetSet 是一个无序的元素集合,不包含重复的元素。可以使用集合运算符来进行交集并集差集操作。 使用方法: 创建一个 Set,可以使用 {} 或者 set() 函数。 ```python my_set = {1, 2, 3, 4, 5} my_set = set(range(5)) ``` 访问 Set 中的元素,可以使用 for 循环。 ```python for x in my_set: print(x) ``` 添加元素到 Set 中,可以使用 add() 函数。 ```python my_set.add(6) ``` 删除 Set 中的元素,可以使用 remove() 函数。 ```python my_set.remove(1) ``` 集合运算符: ```python a = {1, 2, 3} b = {2, 3, 4} a & b # 交集 {2, 3} a | b # 并集 {1, 2, 3, 4} a - b # 差集 {1} ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值