首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏IT云清

    java8 集合操作

    1.根据集合的某个属性值,给集合做排序. 1.实体类要实现Comparable接口 public class IndustryInfo implements Comparable<IndustryInfo IndustryInfo::getNum).reversed()).collect(Collectors.toList()); 2.排除某个特定元素 List<Map<String, Object>> list8 List<Map<String, Object>>> age = list.stream().collect(Collectors.groupingBy(map -> map.get("age"))); 8. onlyPass.stream().collect(Collectors.maxBy(Comparator.comparing(ApprovalLogVo::getApprovalTime))).get(); 10.汇总集合中的某个对象属性

    66620编辑于 2022-05-07
  • 来自专栏指点的专栏

    Java 集合框架(8)---- 总结

    前言 在之前的文章中我们介绍了一下 Java 集合框架中的一些类并对一些常用的类的源码和设计理念进行了解析。那么在这篇文章中我们来将之前介绍过的一些集合类做个总结,并补充一些没有涉及到的知识点。 在此之前我们来看看整个 Java 集合框架的类图: ? 接下来根据不同的分类角度来进行分类,首先是按集合类别: 集合类别 线性集合类 说到线性集合类我们脑海里第一个想到的基本上都是 ArrayList ,确实,这个类太常用了,当然除了这个类,Java 集合框架中还有一些其他的有用的线性集合类 这里用一篇文章总结了一下 Set 接口下的具体类:Java 集合框架(7). HashSet 内部通过 HashMap 实现,效率较高。 好了,关于 Java 中的集合框架到这里就告一段落了。

    73310发布于 2019-01-18
  • 来自专栏全栈程序员必看

    Java集合详解8Java集合类细节精讲

    Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。 今天我们来探索一下Java集合类中的一些技术细节。 初始容量 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。 所以:对于已知的情景,请为集合指定初始容量。 所以若我们事先已知集合的使用场景,知道集合的大概范围,我们最好是指定初始化容量,这样对资源的利用会更加好,尤其是大数据量的前提下,效率的提升和资源的利用会显得更加具有优势。

    36530编辑于 2022-08-22
  • 来自专栏微信公众号【Java技术江湖】

    Java 8中处理集合——Stream

    相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便捷。 不过,这一问题在Java 8中得到了改善,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文就来介绍下如何使用Stream。 2 Stream的创建 在Java 8中,可以有多种方法来创建流。 1、通过已有的集合来创建流 在Java 8中,除了增加了很多Stream相关的类以外,还对集合类自身做了增强,在其中增加了stream方法,可以将一个集合类转换成流。 5 总结 本文介绍了Java 8中的Stream 的用途,优点等。还接受了Stream的几种用法,分别是Stream创建、中间操作和最终操作。

    69620发布于 2019-09-25
  • 来自专栏技术杂货店

    java集合8】——— ArrayList源码分析

    ArrayList ArrayList是最最常用的集合类了,真的没有之一。下面的分析是基于1.8.0_261源码进行分析的。 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ // 构造方法 构造方法有三个,可以指定容量,可以指定初始的元素集合,也可以什么都不指定。 ArrayListSpliterator:继承于Spliterator,Java 8 新增的迭代器,基于索引,二分的,懒加载器。 8. 小结一下 ArrayList是基于动态数组实现的,增加元素的时候,可能会触发扩容操作。扩容之后会触发数组的拷贝复制。

    48120编辑于 2022-02-15
  • 来自专栏IT云清

    java8 stream操作集合

    1.根据集合的某个属性值,给集合做排序. 1.实体类要实现Comparable接口 public class IndustryInfo implements Comparable<IndustryInfo IndustryInfo::getNum).reversed()).collect(Collectors.toList()); 2.排除某个特定元素 List<Map<String, Object>> list8 List<Map<String, Object>>> age = list.stream().collect(Collectors.groupingBy(map -> map.get("age"))); 8.

    1.3K30发布于 2019-01-22
  • 来自专栏技术杂货店

    java集合8】-- ArrayList接口源码解析

    ArrayList ArrayList是最最常用的集合类了,真的没有之一。下面的分析是基于1.8.0_261源码进行分析的。 private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException{ // 构造方法 构造方法有三个,可以指定容量,可以指定初始的元素集合,也可以什么都不指定。 ArrayListSpliterator:继承于Spliterator,Java 8 新增的迭代器,基于索引,二分的,懒加载器。 8. 小结一下 ArrayList是基于动态数组实现的,增加元素的时候,可能会触发扩容操作。扩容之后会触发数组的拷贝复制。

    55600发布于 2020-11-22
  • 来自专栏惊羽-布壳儿

    jdk(8) - java集合的总结

    继承关系 JAVA-集合梳理-d2235945b48b4db7993b7e8f133b47be.png 2.

    43720编辑于 2022-06-15
  • 来自专栏拭心的安卓进阶之路

    Java 集合深入理解(8):AbstractSequentialList

    3.addAll(int index, Collection 用获取到的 listIterator 逐个添加集合中的元素,这就要考验 ListIterator.add 方法的实现效率了,总不能每次都后移一位吧 的确在目前集合框架中 AbstractSequentialList 的唯一实现类 LinkedList 实现的 ListIterator 中,由于 LinkedList 的双休链表特性,每次 add 在 Java 集合深入理解:AbstractList 中我们介绍了 RandomAccess,里面提到,支持 RandomAccess 的对象,遍历时使用 get 比 迭代器更快。

    1.1K60发布于 2018-01-05
  • 来自专栏JAVA相关

    java工具:Java 8 Stream实现List集合排序

    @toc一、介绍该代码使用 Java 8 Stream 的 sorted() 方法和 Comparator.comparing() 对 Repeater 对象列表按照 siteId 字段进行升序排序,并收集为新的 List 集合

    13710编辑于 2026-02-27
  • 来自专栏微信公众号【Java技术江湖】

    Java集合详解8Java集合类细节精讲,细节决定成败

    Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。 这些文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 > https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下Star > > 而当两个hashcode相同但key不相等的entry插入时,仍然会连成一个链表,长度超过8时依然会和hashmap一样扩展成红黑树,看完源码之后笔者才明白自己之前理解错了。 ### TreeSet定义 我们知道TreeMap是一个有序的二叉树,那么同理TreeSet同样也是一个有序的,它的作用是提供有序的Set集合。 public boolean contains(Object o) { return m.containsKey(o); } 8、descendingIterator

    50000发布于 2019-10-13
  • 来自专栏微信公众号【Java技术江湖】

    Java集合详解8Java集合类细节精讲,细节决定成败

    Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。 哈 文章首发于我的个人博客: www.how2playlife.com 今天我们来探索一下Java集合类中的一些技术细节。 初始容量 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。 所以:对于已知的情景,请为集合指定初始容量。 所以若我们事先已知集合的使用场景,知道集合的大概范围,我们最好是指定初始化容量,这样对资源的利用会更加好,尤其是大数据量的前提下,效率的提升和资源的利用会显得更加具有优势。

    47000发布于 2019-10-12
  • 来自专栏微信公众号【Java技术江湖】

    Java集合详解8Java集合类细节精讲,细节决定成败

    如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。 今天我们来探索一下Java集合类中的一些技术细节。 初始容量 集合是我们在Java编程中使用非常广泛的,它就像大海,海纳百川,像万能容器,盛装万物,而且这个大海,万能容器还可以无限变大(如果条件允许)。 所以:对于已知的情景,请为集合指定初始容量。 所以若我们事先已知集合的使用场景,知道集合的大概范围,我们最好是指定初始化容量,这样对资源的利用会更加好,尤其是大数据量的前提下,效率的提升和资源的利用会显得更加具有优势。 asList(T... a) { return new ArrayList<>(a); } asList接受的参数是一个泛型的变长参数,我们知道基本数据类型是无法发型化的,也就是说8个基本类型是无法作为

    44120发布于 2019-11-19
  • 来自专栏JavaEdge

    Java集合源码解析-ConcurrentHashMap(JDK8

    为并发而生的 ConcurrentHashMap 数据结构 Java 7为实现并发访问,引入了Segment这一结构,实现了分段锁,理论上最大并发度与Segment个数相等。 Java 8取消了基于 Segment 的分段锁思想,改用CAS + synchronized 控制并发操作,在某些方面提升了性能。 8的ConcurrentHashMap作者认为引入红黑树后,即使哈希冲突比较严重,寻址效率也足够高,所以作者并未在哈希值的计算上做过多设计,只是将Key的hashCode值与其高16位作异或并保证最高位为 对于读操作,由于数组被volatile修饰,因此不用担心数组的可见性问题; 同时每个元素是一个Node实例(Java 7中每个元素是一个HashEntry),它的Key值和hash值都由final修饰 = 0) { //链表深度超过 8 转换为红黑树 if (binCount >= TREEIFY_THRESHOLD) treeifyBin

    36110发布于 2021-10-18
  • 来自专栏JavaEdge

    Java集合源码解析-ConcurrentHashMap(JDK8

    为并发而生的 ConcurrentHashMap 数据结构 Java 7为实现并发访问,引入了Segment这一结构,实现了分段锁,理论上最大并发度与Segment个数相等。 Java 8取消了基于 Segment 的分段锁思想,改用CAS + synchronized 控制并发操作,在某些方面提升了性能。 8的ConcurrentHashMap作者认为引入红黑树后,即使哈希冲突比较严重,寻址效率也足够高,所以作者并未在哈希值的计算上做过多设计,只是将Key的hashCode值与其高16位作异或并保证最高位为 对于读操作,由于数组被volatile修饰,因此不用担心数组的可见性问题; 同时每个元素是一个Node实例(Java 7中每个元素是一个HashEntry),它的Key值和hash值都由final修饰 = 0) { //链表深度超过 8 转换为红黑树 if (binCount >= TREEIFY_THRESHOLD) treeifyBin

    29620编辑于 2021-12-07
  • 来自专栏全栈程序员必看

    Java list转set;JDK8 下list 集合转Set 集合

    List 集合转Set 集合 1. List 集合和Set 集合的区别 在说如何List集合转Set 集合之前我们先回顾一下 List 集合和Set 集合的区别, 细致上说List 集合和Set 集合的区别还是有蛮多的有兴趣的同学可以去看一下源码 ,粗糙地讲List 集合和Set 集合的区别主要有那么几点 。 的数据结构是线性结构所以它在遍历的时候特别快 (4)set 是无序的不能插入重复元素 (5) Set 的数据结构是哈希表所以在频繁添加或移除元素的业务场景下特别有优势 2.如何优雅地把List 集合转 Set 集合

    1.6K10编辑于 2022-06-24
  • 来自专栏每天学Java

    Java8-Stream在集合中的8种应用案例

    前言 Java8新特性我们使用的应该比较多了,今天这里整理了个人使用最多的8种场景,希望对大家有所帮助。 遍历 遍历也许是我们使用最多的功能了,在Java8之前我们遍历集合通常会采用for循环,迭代器,而在Java8中有了更加简介的方法: public static void main(String ,比如过滤集合中负数,过滤一些权限相关数据,在Java8之前我们更多的是使用迭代器进行remove操作,在Java8中有了两种更加简介的方法,其一:利用Collection的removeIf方法;其二: 但是在Java8中有更加简洁的方案,方案一:我们可以利用distinct()方法实现,如果去重元素不是基本类型而是对象的话,需要重写hashcode和equals方法,否则会去重失败。 ID为10的对象,将其取出,Java8之前我们通常会遍历集合,使用if判断,然后匹配到使用break跳出循环,但是在Java8中,我们可以使用anyMatch达到相同的效果。

    2.1K30发布于 2020-06-01
  • 来自专栏Happy的分享

    Java8使用Stream优雅地处理集合

    说明 集合和数组是我们经常会用到的数据结构,在jdk1.8之前,集合和数组的处理并不是很便捷。但是到了JDK1.8之后,使用Stream处理集合会使代码变得更加的简洁明了。 Java8都发布N年了,转LocalDateTime吧,讲解了JDK1.8时间上的新API,大家也可以看看。 Collectors.toList()); System.out.println(JSON.toJSONString(list)); } 输出结果: ["apple","banana","cat"] map 生成新的集合

    33610编辑于 2024-02-02
  • 来自专栏Happy的分享

    Java8使用Stream优雅地处理集合

    说明 集合和数组是我们经常会用到的数据结构,在jdk1.8之前,集合和数组的处理并不是很便捷。但是到了JDK1.8之后,使用Stream处理集合会使代码变得更加的简洁明了。 Java8都发布N年了,转LocalDateTime吧,讲解了JDK1.8时间上的新API,大家也可以看看。 System.out.println(JSON.toJSONString(list)); } 复制代码 输出结果: ["apple","banana","cat"] 复制代码 ---- map 生成新的集合

    60810发布于 2019-07-17
  • 来自专栏Java识堂

    Java 8中处理集合的优雅姿势——Stream

    Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。 相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便捷。 不过,这一问题在Java 8中得到了改善,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文就来介绍下如何使用Stream。 2 Stream的创建 在Java 8中,可以有多种方法来创建流。 1、通过已有的集合来创建流 在Java 8中,除了增加了很多Stream相关的类以外,还对集合类自身做了增强,在其中增加了stream方法,可以将一个集合类转换成流。

    67840发布于 2019-09-29
领券