首页 > 编程语言 >Java 常用开发总结

Java 常用开发总结

时间:2023-10-07 10:34:37浏览次数:52  
标签:总结 常用 Java Collectors Arrays list List newList asList

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),也欢迎关注:

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

标签:总结,常用,Java,Collectors,Arrays,list,List,newList,asList
From: https://www.cnblogs.com/wxweven/p/17745736.html

相关文章

  • gcc编译选项总结
    转载自:https://blog.csdn.net/gatieme/article/details/21389603常用编译选项gccandg++分别是gnu的c&c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标......
  • 强烈推荐!8 个 IDEA 常用小技巧,准点下班必备!
    InteIIiJIDEA2023.2版本发布了,在2023.2中,官方根据用户的宝贵反馈对新UI做出了大量改进,新UI界面大大减少了干扰,可以让用户更好地专注于代码。相信很多同学都已经迫不及待地尝试了。但官方激活码的校验规则进行了更新,之前已经成功激活的Idea可能突然无法使用了,给大家准备了激活码......
  • Java抽象类与接口的区别(略解)
    抽象类 接口抽象类与接口区别1.抽象类抽象类用abstract来修饰,例如:packagecom.test.abstractaaa;publicabstractclassTestAbstract{}抽象类是用来捕捉子类的通用性的,它不能被实例化,只能用作子类的超类,抽象类是被用来创建继承层级里子类的模板,例如JDK中......
  • 深入浅出 Java 中的神锁:ReentrantLock,还有谁不会?
    来源:jiannan.blog.csdn.net/article/details/121331360一、引言话不多说,扶我起来,我还可以继续撸。在学习ReentrantLock源码之前,先来回顾一下链表、队列数据结构的基本概念~~二、数据结构2.1链表(LinkedList)小学一、二年级的时候,学校组织户外活动,老师们一般都要求同学之间小......
  • 深入理解Java的接口与抽象类
    深入理解Java的接口和抽象类对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java......
  • JavaScript 技术
    JavaScript是一种脚本语言,主要用于在Web页面中实现交互效果和动态功能。它是一种客户端脚本语言,意味着它在用户的浏览器中运行,而不是在服务器上。JavaScript具有以下特点和技术:1.事件驱动:JavaScript可以通过监听用户的交互事件(如点击、鼠标移动、键盘输入等)来触发相应的动作和......
  • 2023.10.6——每日总结
    学习所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习+休息,下午学习+休息;我了解到的知识点:1.任务明日计划:学习+休息......
  • JavaScript(二)——DOM
    WebAPIs一个页面就是一个文档(document),标签是元素(element),内容是节点(node),DOM中把以上内容都看作对象。DOM文档对象模型获取DOM元素document.querySelector('')//返回匹配到的第一个元素.box、#id、div一个或多个选择器document.querySelectorAll('')//匹配到符合的元素集(伪......
  • 每日总结
    今日收获回学校啦!!!今天背了好多的单词,准备了部分的软考;还解决了一些有关于springboot和数据库的“恩怨情仇”;不得不感叹一句,软考的题目真的好广泛啊......
  • 2023-2024-1 20231409佟伟铭 《计算机基础与程序设计》第一周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第一周作业这个作业的目标<计算机基础与程序设计中的问题>作业正文https://www.cnblogs.com/twma......