首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java集合框架知识整理

Map:Map代表具有映射关系的集合。 HashMap:底层是用链表数组,Java8后又加了红黑树来实现,键无序不可重复可为null、可重复可为null,存取速度快,线程不安全。...使用Spliterator每次可以处理某个元素集合中的一个元素 — 不是从Spliterator中获取元素,而是使用tryAdvance()或forEachRemaining()方法元素应用操作。...Java8引入了Stream以实现集合更方便地进行函数式编程。 default Stream parallelStream(),返回一个可能并行的Stream对象。Java8新增的方法。...可以是顺序的也可以是并行的。顺序的操作是在单线程上执行的,而并行的操作是在多线程上并发执行的。...extends V> remappingFunction),Java8新增的默认接口方法,将新计算的覆盖Map中原key对应的value SortedSet接口中的额外抽象方法 Comparator

57820
您找到你想要的搜索结果了吗?
是的
没有找到

Java 集合SortedSet&SortedMap讲解

转载自 https://blog.csdn.net/u010126792/article/details/62235628 这次java集合框架学习中的两个特殊的接口进行介绍:SortedSet和SortedMap...Set和Map本身不具备排序功能,提供了SortedMap和SortedSet接口之后可以在提供排序方案的同时,增加更多的获取集合特定位置元素的方法。...1 SortedSet接口 [java] view plain copy public interface SortedSet extends Set {   所有已知实现类:...e java.util.SortedSet.last()//最后一个元素 java.util.SortedSet.spliterator()//Java8新增,生成Spliterator接口,有点类似...e之后的元素,包括e  利用实现了sortedSet的集合进行实验: [java] view plain copy //利用实现了SortedSet的TreeSet做实验         SortedSet

46120

Java 中文官方教程 2022 版(二十七)

当你List进行排序时,这并不重要;但当你使用Comparator排序的集合进行排序时,这是致命的。...除了正常的 Set 操作外,SortedSet 接口还提供以下操作: Range view — 允许排序集合进行任意范围操作 Endpoints — 返回排序集合中的第一个或最后一个元素...除了它们的明显用途外,last 还允许解决 SortedSet 接口中的一个缺陷。您希望 SortedSet 进行的一件事是进入 Set 的内部并向前或向后迭代。...如果将null传递给此构造函数,则返回一个根据其键的自然顺序映射进行排序的Map。...Set接口有一个子接口,SortedSet,用于集合中的元素进行排序。 List接口提供了一个有序的集合,用于需要精确控制每个元素插入位置的情况。

3200

Java集合:关于 TreeSet 的内容盘点

TreeSet() 是使用二叉树的原理新 add() 的对象按照指定的顺序排序(升序、降序),每增加一个对象都会进行排序,将对象插入的二叉树指定的位置; ~ 本篇内容包括:TreeSet 概述、...和 TreeSet 的区别 2、关于 红黑树的特点 3、关于 TreeSet 和 TreeMap 的区别 ---- 一、TreeSet 概述 TreeSet() 是使用二叉树的原理新 add() 的对象按照指定的顺序排序...TreeSet 最主要的特点就是元素进行排序。...extends E> c) 构造一个包含指定集合中的元素的TreeSet,根据其元素的自然排序进行比较 public TreeSet(SortedSet s) 构造TreeSet,并使用与指定排序集相同的顺序...都写入到输出中 void readObject(java.io.ObjectInputStreams) 从输入流中读取TreeSet的“比较器、容量,所有的元素” ---- 三、其他知识点 1、关于

37910

似懂非懂 Comparable和 Comparator【面试+工作】

在java中提供了两种排序方式:Comparable和 Comparator,它们两个看起来非常的相似,在不是很了解的情况下不知道如何使用,什么情况下使用哪个进行排序,接下来就看下它们的一个区别和使用方式...: Comparable 首先看下 Comparable,Comparable 它可以看成是一个排序接口,一个类实现了该接口,就表示该类本身具有排序的功能,如果该类的集合或者数组进行排序,则可以使用...之后,还可以把这些对象放入到 SortedSet 中,就会自然这些对象进行排序: ? 因为 Set 中没有重复元素,所有会过滤掉重复的元素。...还有一些默认的方法,都是一些 java8 中的方法, 自定义一个比较器: ? 之后就可以使用该自定义的比较器集合进行排序: ? 当然,也可以不用自定义一个比较器,直接使用匿名类即可,如下: ?...SortedSet 和 SortedMap 中的保证其有序; Comparator 它是一个比较器,实现该接口的类只能用其其他对象进行排序

67430

Java8-Stream API

flatMap(Function f) 接收一个函数作为参数,将中的每个都换成另一个,然后把所有流连接成一个 sorted(Comparator comp) 产生一个新,其中按比较器顺序排序...Set中元素收集到Set toCollection Collection 把中元素收集到创建的集合 groupingBy Map> 根据某属性对流分组,属性为K,结果为V partitioningBy...Map> 根据true或false进行分区 这里只列出了一些常用的方法.具体参考Java8 Stream API : Java Platform SE 8 Stream API 使用 中间操作 终止操作...小结 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。...使用Stream API 集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。

71020

Java8新特性—stream使用

前言: 今天跟大家分享一下java8的新特性之一—,肯定有很多人见到过,但是我相信目前很多人还没有广泛的使用—可能暂时没有使用的意识,或者说是使用的不熟练,如果真的是这样,那么今天分享的文章肯定会给你带来巨大的冲击...那么如果我们使用java8操作将会是下面的场景: 你:媳妇儿,把你包包里面的东西都拿出来放到桌子上 就是这么简单,我们下面来详细的学习一下的操作 上面的实例可能有些人会觉得集合也能用一些清空的操作啊.../*** * 使用java8流式的方式获取低热量的菜品的名称,并且排序 * @param dishes * @return */ public List ortLowCaloriesFor8...的代码和java8之前进行对比,其实如果你看完了我相信stream非常热爱,甚至可能会回去改代码了。...到这里的基本的操作算是介绍完了,这篇文章就写道这里吧,后面会更加深入的还会介绍一些的更高级的使用

73420

Java8新特性之Stream

XNBqZ 好了,现在有个需求,找出菜品中所有小于400卡路里的食物,并且按照卡路里的大小进行排序。...在java8之前,甚至有些人在java8之后,都会想着借助一个中间变量保符合要求的菜品,然后排序。...上述写法有什么问题吗,可以发现lowCaloricDishes 只使用了一次,真就一个临时变量。那能不能跳过创建变量的过程,你直接把数据给我,我经过过滤排序后得到想要的呢,就和流水线一样。...img 这就是本篇要讲的(Stream)了 的定义 从支持数据处理操作的源生成的元素序列 和集合有点类似,集合是数据结构,主要的目的是存储和访问元素,而的主要目的是为了元素进行一系列的操作。...image-20210417114209123 一般使用的是可以接受2个参数,一个是初始,一个是BinaryOprator 来将两个元素结合起来产生的新

44630

Java开发之Java8 新特性--流式数据处理学习

由上面的例子可以看出,java8的流式处理极大的简化了对于集合的操作,实际上不光是集合,包括数组、文件等,只要是可以转换成,我们都可以借助流式处理,类似于我们写SQL语句一样进行操作。...该操作用于对流中元素进行排序,sorted要求待比较的元素必须实现Comparable接口,如果没有实现也不要紧,我们可以将比较器作为参数传递给sorted(Comparator mapper),这些映射分别返回对应类型的java8为这些设定了一些特殊的操作,比如我们希望计算所有专业为计算机科学学生的年龄之和,那么我们可以实现如下: int totalAge...IntStream,我们可以直接调用提供的sum()方法来达到目的,此外使用这些数值的好处还在于可以避免jvm装箱操作所带来的性能消耗。...flatMap flatMap与map的区别在于 flatMap是将一个中的每个都转成一个个,然后再将这些扁平化成为一个

1.7K20

使用 Stream API 高逼格 优化 Java 代码!

Java8的新特性主要是Lambda表达式和,当和Lambda表达式结合起来一起使用时,因为申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...: 筛选出卡路里小于400的菜肴 筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:Dish.java public class Dish { private String name; private...dish.getCalories() < 400) {                 lowCaloricDishes.add(dish);             }         }         //2.筛选出的菜肴进行排序...其目的主要是打开,做出某种程度的数据映射/过滤,然后返回一个新的,交给下一个操作使用。...提供findAny方法是为了更好的利用并行,findFirst方法在并行上限制更多【本篇文章将不介绍并行】 reduce将中的元素组合起来 假设我们一个集合中的进行求和 jdk8之前 int

2.1K30

使用 Stream API 高逼格 优化 Java 代码!

Java8的新特性主要是Lambda表达式和,当和Lambda表达式结合起来一起使用时,因为申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...: 筛选出卡路里小于400的菜肴 筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:Dish.java public class Dish { private String name;...dish.getCalories() < 400) { lowCaloricDishes.add(dish); } } //2.筛选出的菜肴进行排序...其目的主要是打开,做出某种程度的数据映射/过滤,然后返回一个新的,交给下一个操作使用。...提供findAny方法是为了更好的利用并行,findFirst方法在并行上限制更多【本篇文章将不介绍并行】 reduce将中的元素组合起来 假设我们一个集合中的进行求和 jdk8之前 int

1.9K10

使用 Stream API 高逼格 优化 Java 代码!

Java8的新特性主要是Lambda表达式和,当和Lambda表达式结合起来一起使用时,因为申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...: 筛选出卡路里小于400的菜肴 筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:Dish.java public class Dish { private String name;...if (dish.getCalories() < 400) { lowCaloricDishes.add(dish); } } //2.筛选出的菜肴进行排序...其目的主要是打开,做出某种程度的数据映射/过滤,然后返回一个新的,交给下一个操作使用。...提供findAny方法是为了更好的利用并行,findFirst方法在并行上限制更多【本篇文章将不介绍并行】 reduce将中的元素组合起来 假设我们一个集合中的进行求和 jdk8之前 int

1.7K20

巧用 Java 8 的 Stream 来优化代码

Java8的新特性主要是Lambda表达式和,当和Lambda表达式结合起来一起使用时,因为申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...: 筛选出卡路里小于400的菜肴 筛选出的菜肴进行一个排序 获取排序后菜肴的名字 菜肴:Dish.java public class Dish { private String name;...< 400) { lowCaloricDishes.add(dish); } } //2.筛选出的菜肴进行排序...其目的主要是打开,做出某种程度的数据映射/过滤,然后返回一个新的,交给下一个操作使用。...提供findAny方法是为了更好的利用并行,findFirst方法在并行上限制更多【本篇文章将不介绍并行】 reduce将中的元素组合起来 假设我们一个集合中的进行求和 jdk8之前 int

17610

Java8的双绝学之一stream能用来做什么?

java8两大招牌 一个是函数式编程 Lambda 表达式,一个是Stream Stream API(java.util.stream)把真正的函数式编程风格引入到java中,这是目前为止java类库最好的补充...因为Stream API可以极大的提供Java程序员的生产力,让程序员写出更高效率和干净,简洁的代码 Stream是Java8处理结合的关键抽象概念,他可以指定你希望集合进行的操作,可以执行非常复杂的查找...,过滤和映射数据等操作,使用StreamAPI集合数据进行操作,就类似于使用SQL执行的数据库查询。...该接口主要用来进行集合排序。...其结果可以是任何不是,例 如:List、Integer,甚至是 void 。 流进行了终止操作后,不能再次使用

64910

使用 Stream API 高逼格 优化 Java 代码

Java8的新特性主要是Lambda表达式和,当和Lambda表达式结合起来一起使用时,因为申明式处理数据集合的特点,可以让代码变得简洁易读 放大招,如何简化代码 如果有一个需求,需要对数据库查询到的菜肴进行一个处理...: 筛选出卡路里小于400的菜肴 筛选出的菜肴进行一个排序 获取排序后菜肴的名字 Dish.java public class Dish { private String name ; private...add ( dish ); } } //2.筛选出的菜肴进行排序 Collections ....其目的主要是打开,做出某种程度的数据映射/过滤,然后返回一个新的,交给下一个操作使用。...提供findAny方法是为了更好的利用并行,findFirst方法在并行上限制更多【本篇文章将不介绍并行】 reduce将中的元素组合起来 假设我们一个集合中的进行求和 jdk8之前 int

9910

Java中的集合-您必须知道的13件事

队列通常但不一定以FIFO(先进先出)的方式元素进行排序。优先队列除外,它们根据提供的比较器或元素的自然顺序元素进行排序。...3.7)Map 接口 Java Map是一个将键映射的对象。映射不能包含重复的键:每个键最多可以映射到一个。...3.10)SortedMap 接口 以升序顺序维护其映射的Map。这是SortedSet的Map模拟。排序后的Map使用键/的自然排序集合,例如字典和电话簿。 4....根据映射键的自然顺序或在映射创建时提供的比较器对映射进行排序,具体而言所使用的构造函数。 此实现为containsKey,get,put和remove操作提供了保证的log(n)时间成本。...简单形式采用一个List,并根据其元素的自然顺序进行进行排序排序的第二种形式除列表外还包含一个Comparator,并使用Comparator元素进行排序

86740

【JDK1.8 新特性】Stream API

Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。...使用Stream API 集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。...Stream 和 Collection 集合的区别:Collection 是一种静态的内存数据结构,讲的是存储数据,而 Stream 是有关计算的(排序、查找、过滤、映射、遍历等),讲的是对数据进行计算...); 使用Stream.iterate()方法创建无限流,该方法接受一个起始和一个UnaryOperator类型的参数,用于对起始进行迭代操作。...其结果可以是任何不是,例如:List、Integer,甚至是 void 。 流进行了终止操作后,不能再次使用。 1.

71830
领券