
java8
java8
杭州小哥哥
记录学习笔记
展开
-
java8使用filter(Objects::nonNull) 过滤null
filter原创 2022-09-15 23:13:43 · 5104 阅读 · 0 评论 -
为什么SimpleDateFormat不是线程安全的?以及解决方法说明
说的很清楚,SimpleDateFormat 不是线程安全的,多线程下需要为每个线程创建不同的实例。不安全的原因是因为使用了 Calendar 这个全局变量:在日期格式化的时候:我们把重点放在 calendar ,这个 format 方法在执行过程中,会操作成员变量 calendar 来保存时间 calendar.setTime(date) 。但由于在声明 SimpleDateFormat 的时候,使用的是 static 定义的,那么这个 SimpleDa...原创 2021-05-04 11:51:05 · 3133 阅读 · 1 评论 -
Java8 Stream中过滤null值
Stream.filter(x -> x!=null)public class Java8Examples { public static void main(String[] args) { Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php"); //List<String> result = l..原创 2021-04-01 22:54:12 · 2807 阅读 · 0 评论 -
Java8 拼接字符串 StringJoiner
StringJoiner是Java8新出的一个类,用于构造由分隔符分隔的字符序列,并可选择性地从提供的前缀开始和以提供的后缀结尾。省的我们开发人员再次通过StringBuffer或者StingBuilder拼接。我们查看一下一下代码,试着猜一下。1.简单的字符串拼接 输出:HelloWorld2:可使用特定的分隔符或是前后缀来拼接字符串注:当我们使用StringJoiner(CharSequence delimiter)初始化一个StringJoiner的时候,这个delimi.原创 2021-02-28 15:46:04 · 930 阅读 · 0 评论 -
lamba List 转 Map
Java 8 以前的写法:Map<Long, User> userMap = new HashMap<Long, User>();for (User user : users) { userMap.put(user.getId(), user);}Java 8 写法:Map<Long, User> userMap = users.stream().collect(Collectors.toMap(User::getId, o -> o)).原创 2020-12-22 15:56:34 · 105 阅读 · 0 评论 -
lambda中orElse(null)使用
如果取得第一个元素,则用findFirst()最后提取元素的时候,可以用:get或者orElse(null)这里要注意的是,规范用法是orElse(null)用get方法,如果filter中获取的是null,那么用get方法会抛出异常:(异常见图二) /** * 测试 * 如果返回值是null的话,则取orElse中值 * orElse */ @Test public void test28() { Li.原创 2020-08-31 17:23:43 · 7785 阅读 · 0 评论 -
升序
/** * 升序 */ @Test public void test25() { List<Integer> array = Stream.of(1, 8, 5, 3).collect(toList()); // 升序排序 array.sort(Integer::compareTo); System.out.println(array); }原创 2020-08-31 15:14:30 · 312 阅读 · 0 评论 -
lambda中使用filter过滤
单一条件过滤 /** * 测试filter */ @Test public void testFilter() { List<User> user = new ArrayList<>(); user.add(new User(1L, 18, "小明")); user.add(new User(2L, 20, "小王")); user.add(new User(3L, 28原创 2020-08-29 12:32:52 · 3622 阅读 · 1 评论 -
lambda中sorted排序
准备工作,新建一个User类使用stream排序操作(默认ASC排序)stream倒序排序操作sorted(Comparator.reverseOrder())代码例子:/** * lambda * sorted排序 */ @Test public void test19() { List<Integer> list = new ArrayList<>(); list..原创 2020-08-28 21:05:43 · 4208 阅读 · 0 评论 -
Java中Comparator比较器的使用以及使用lamba简化代码
代码例子: /** * 测试Comparator */ @Test public void test17(){ //原始方法 Comparator<Integer> comparator = new Comparator<Integer>() { @Override public int compare(Integer o1, Intege...原创 2020-08-28 14:18:28 · 372 阅读 · 0 评论 -
lambda
例子:原创 2020-08-28 13:37:12 · 112 阅读 · 0 评论 -
lamba
lamba /** * lamba */ @Test public void test5() { Runnable r = () -> System.out.println("hello"); r.run(); } @Test public void test6() { int num = 0; Runnable r = new Runnable() {原创 2020-08-25 00:03:55 · 163 阅读 · 0 评论 -
lamba语法格式
原创 2020-08-24 23:59:01 · 480 阅读 · 0 评论 -
lamba表达式
原创 2020-08-24 20:01:33 · 141 阅读 · 0 评论 -
java8中Predicate用法
@Test public void predicate(){ /** * Predicate谓词测试,谓词其实就是一个判断的作用类似bool的作用 */ //① 使用Predicate接口实现方法,只有一个test方法,传入一个参数,返回一个bool值 Predicate<Integer> predicate = new Predicate<Integer>() {...原创 2020-08-21 22:13:45 · 2896 阅读 · 0 评论 -
java8 supplier 接口
Supplier 接口Supplier 接口是一个供给型的接口,其实,说白了就是一个容器,可以用来存储数据,然后可以供其他方法使用的这么一个接口 ** * Supplier接口测试,supplier相当一个容器或者变量,可以存储值 */ @Test public void test_Supplier() { //① 使用Supplier接口实现方法,只有一个get方法,无参数,返回一个值 Supplier<Int.原创 2020-08-21 17:58:36 · 648 阅读 · 0 评论