参考 blog.csdn.net/qq_20919883…
package com.my.demo.Utils;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
public class CollectorsTest {
private List<Person> listData(){
String str = "[\n" +
" {\n" +
" "id": "00",\n" +
" "name": "王五",\n" +
" "age": 18,\n" +
" "jobCode": "0000",\n" +
" "jobName": "前端"\n" +
" },\n" +
" {\n" +
" "id": "01",\n" +
" "name": "李四",\n" +
" "age": 18,\n" +
" "jobCode": "0001",\n" +
" "jobName": "后端"\n" +
" },\n" +
" {\n" +
" "id": "02",\n" +
" "name": "赵三",\n" +
" "age": 18,\n" +
" "jobCode": "0000",\n" +
" "jobName": "前端"\n" +
" }\n" +
"]";
return JSON.parseArray(str, Person.class);
}
@Test
public void testJoining(){
List<String> list = Arrays.asList("11","22","33");
String listStr = list.stream().collect(Collectors.joining(",", "(", ")"));
log.info("listStr:{}", listStr);
}
@Test
public void testToMap(){
Map<String, Person> personMap = listData().stream().collect(Collectors.toMap(Person::getId, item -> item));
log.info("personMap:{}",JSON.toJSONString(personMap));
}
@Test
public void testToMapV1(){
Map<String, Person> personMap = listData().stream().collect(Collectors.toMap(Person::getId, Function.identity(), (v1, v2) -> v1));
log.info("personMap:{}",JSON.toJSONString(personMap));
}
@Test
public void testGroupingBy(){
Map<String, List<Person>> personListMap = listData().stream().collect(Collectors.groupingBy(item->item.getJobCode()));
log.info("personListMap:{}",JSON.toJSONString(personListMap));
}
}
@Test
public void testCounting(){
Map<String, Long> jobCodeCount = listData().stream().collect(Collectors.groupingBy(Person::getJobCode, Collectors.counting()));
log.info("personListMap:{}",JSON.toJSONString(jobCodeCount));
}