![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合
文章平均质量分 76
哆啦酱不加班
把摸鱼的时间用来学习
展开
-
Stream系列之集合分组
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech示例源码辅助类@Data@AllArgsConstructorpublic class User { private String name; private Integer age;}groupingBy() – 分组Java8 中的 groupingBy 实现集合的分组,类似于 Mysql 中的 group by 操作,返回一个 Map。package com.jia.blogdemo.st原创 2021-04-06 17:33:34 · 1919 阅读 · 0 评论 -
快速失败(ail-fast)和安全失败(fail-safe)机制
在 Java 的集合类中,在遍历修改时,会发生两种错误,一种是 fail-fast,一种是 fail-safe 。这两种机制分别对应的是线程不安全和线程安全的集合类。先说fail-fast ,在使用 Java集合的过程中,应该都碰到过 ConcurrentModificationException 。我是大二那年进学校工作室考核期时,写程序的时候第一次碰到这个异常的。原因就是我在for-each 中删除掉了一个元素。当时自然是懵懵的,也不知道这其实是 Java 集合的一个知识点:fail-fast原创 2021-03-24 08:02:20 · 464 阅读 · 1 评论 -
线程安全的集合类哪里找
文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech验证ArrayList线程不安全ArrayList 应当是开发中用到的最多的集合类,是动态列表,List 接口的实现类。多数情况下,我们实在单线程环境使用,或者是在方法内部,以局部变量的形式使用,一般不会出现线程安全问题。但是当ArrayList置身于多线程环境时,很容易因为自身的fail-fast 机制抛出异常 ConcurrentModificationException 。比如下面的代码/** * 验证Arra原创 2021-03-23 07:50:19 · 75 阅读 · 1 评论 -
为什么Java中的Collection类都继承了抽象类还要实现抽象类的接口?
文章首发于个人博客,欢迎访问关注:https://www.lin2j.techStackOverFlow的答案在这里 传送门在Java的集合类中,有很多这种操作,一个集合类实现了抽象类后,又显式地实现抽象类实现的接口。我通过一段代码来解释为什么要这样,也可以直接跳过代码,看好处。解释一下:现在有四个接口 A,B,C,Aa(Aa,实际上是继承了A,B)有一个抽象类,该抽象类实现了 Aa,就相当于 AbstractList 实现了 List有两个版本的实现了,一个在类声明的时候显式地声明了自己实现了原创 2021-03-22 08:01:10 · 312 阅读 · 0 评论