Java8 集合篇
List Stream 常用操作
1 List 去重
public class StreamTest {
@Test
public void test_listDistinct() {
List<String> oldList = Arrays.asList("a", "b", "a", "c");
List<String> newList = oldList.stream().distinct().collect(Collectors.toList());
System.out.println("oldList: " + oldList);
System.out.println("newList: " + newList);
}
}
2 数组转 List
// int数组转List
int[] ints = {1, 2, 3};
List<Integer> list = IntStream.of(ints).boxed().collect(Collectors.toList());
// String数组转List
String[] arrays = new String[]{"a", "b", "c"};
List<String> listStrings = Stream.of(arrays).collect(Collectors.toList());
3 List 转数组
List<String> list = Arrays.asList("a", "b", "c");
String[] array = list.stream().toArray(String[]::new);
4 List 转 Map
List<User> users = getUsers();
Map<Long, User> userMap = users.stream()
.collect(Collectors.toMap(
Person::getId,
Function.identity(),
(v1, v2) -> v2
));
List Stream 进阶操作
1 List 分组后汇总
If the input was
[(1, “one”), (1, “eins”), (1, “uno”), (2, “two”), (3, “three”)]
the output would be
代码如下:
tuples.stream()
.collect(Collectors.groupingBy(Tuple::getFirst, Collectors.mapping(
Tuple::getSecond,
Collectors.toSet()
)));
2 List 打平
假设我们有如下的嵌套List:
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<List<Integer>> list = Arrays.asList(list1, list2);
如果我们想把list值铺平成:[1, 2, 3, 4, 5, 6]
, 那么可以用 flatMap
来实现。完整例子如下:
@Test
public void testFlatMap() {
List<Integer> list1 = Arrays.asList(1, 2, 3);
List<Integer> list2 = Arrays.asList(4, 5, 6);
List<List<Integer>> list = Arrays.asList(list1, list2);
List<Integer> newList = list.stream()
.flatMap(Collection::stream)
.collect(Collectors.toList());
System.out.println("newList=" + newList);
}
输出:newList=[1, 2, 3, 4, 5, 6]
Java I/O 篇
从 url 中读取文件
有些场景下,比如我们上传了一个 Excel 文件到服务器后服务器会返回一个可以下载的地址,想要通过这个 url 直接读取 Excel 的内容,代码如下:
try (InputStream inputStream = new URL(excelUrl).openStream()) {
// 使用这个 inputSteam
}
我是梅小西,最近在某东南亚电商公司做 DevOps 的相关事情。从本期开始,将陆续分享基于 Jenkins 的 CI/CD 工作流,包括 Jenkins On k8s 等。
如果你对 Java 或者 Jenkins 等感兴趣,欢迎与我联系,微信:wxweven(备注 DevOps),也欢迎关注:
标签:总结,常用,Java,Collectors,Arrays,list,List,newList,asList From: https://www.cnblogs.com/wxweven/p/17745736.html本文由博客群发一文多发等运营工具平台 OpenWrite 发布