应用场景
在大数据的背景下,我们在做项目的时候往往使用单表在数据库中查询数据,然后多表在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:53.037] INFO com