Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中 Collections工具类的学习

Java中 Collections工具类的学习

作者头像
呼延十
发布于 2019-07-01 09:13:01
发布于 2019-07-01 09:13:01
5210
举报
文章被收录于专栏:呼延呼延

前言

天天都在用Java集合,也偶尔用到了Collections类中的一些方法,但是一直没有对这个工具类进行一个较为系统的学习,今天放假比较无聊,闲来看一看.并且记录一下API.

5500多行的代码,,这个工具类是真的大,希望可以发现一些好用且常用的工具方法.

大部分API会在API记录部分写一下,少部分需要额外补充说明的,在某些特殊说明中单独记录.

API记录

编号

方法

作用

备注

1

public static <T extends Comparable<? super T>> void sort(List<T> list)

对传入的list进行排序

使用该元素自己的Comparable

2

public static <T> void sort(List<T> list, Comparator<? super T> c)

使用指定的Comparable进行排序

3

public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key)

在给定的list里面找key,使用二分查找算法.

4

public static <T> int binarySearch(List<? extends T> list, T key, Comparator<? super T> c)

上一个方法的指定Comparable版本.

5

public static void reverse(List<?> list)

翻转list中元素的顺序

6

public static void shuffle(List<?> list, Random rnd)

随机打乱list中的元素顺序

7

public static void swap(List<?> list, int i, int j)

交换list在两个下标上的元素

所以我们日常的swap其实不用自己写的

8

public static <T> void fill(List<? super T> list, T obj)

用给定的元素将list的全部元素替换掉.

9

public static <T> void copy(List<? super T> dest, List<? extends T> src)

拷贝列表

10

public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)

返回集合中最小的元素

当然他也有指定Comparable的版本.不贴了.

11

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)

返回集合中最大的元素

当然也有咯.

12

public static void rotate(List<?> list, int distance)

回转当前列表

回转的定义:之前是1,2,3,以1回转之后就是3,1,2.以2回转就是,2,3,1.

13

public static <T> boolean replaceAll(List<T> list, T oldVal, T newVal)

批量用新值替换当前列表中的某一个值

14

public static int indexOfSubList(List<?> source, List<?> target)

返回target集合在source列表中的index,如果target不是source的子列表,返回-1;

15

public static int lastIndexOfSubList(List<?> source, List<?> target)

返回最后出现的index,比如1,2,3,2,target=2,返回3.

16

public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c)

返回一个不可变的视图

封装了一下,重写了所有可能修改集合的方法,抛出异常

17

public static <T> Set<T> unmodifiableSet(Set<? extends T> s)

不可变的set

接下来是几个set的变种,sortedset之类的.

18

public static <T> List<T> unmodifiableList(List<? extends T> list)

不可变的list.

19

public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends V> m)

不可变的Map

20

public static <T> Collection<T> synchronizedCollection(Collection<T> c)

强行是用synchronized同步的集合类

返回的也是封装,重写之后的类,接下来和上面不可变一样,是list,map,set及其变种.

21

c static <E> Collection<E> checkedCollection(Collection<E> c, Class<E> type)

一堆进行了类型检查的集合类

也有map等等变种.

22

public static <T> Iterator<T> emptyIterator()

返回一个空的迭代器

接下来有许多空的list,set,map等等.

23

public static <T> Set<T> singleton(T o)

返回只有一个元素的set.

24

public static <T> List<T> singletonList(T o)

返回只有一个元素的List.

25

public static <K,V> Map<K,V> singletonMap(K key, V value)

返回只有一个元素的Map.

26

public static <T> Enumeration<T> enumeration(final Collection<T> c)

返回当前集合的枚举

27

public static <T> ArrayList<T> list(Enumeration<T> e)

从枚举返回ArrayList.

28

public static int frequency(Collection<?> c, Object o)

返回输入对象在集合中的出现次数.

29

public static boolean disjoint(Collection<?> c1, Collection<?> c2)

返回两个集合是都有交集

有交集返回false,没有返回true.

30

public static <T> boolean addAll(Collection<? super T> c, T... elements)

将给定的元素全部添加到给定集合中

集合本身可以添加全部,但是必须要求也是集合参数,比如你有两个独立的元素,就可以直接使用这个类而不是用两个元素构造一个集合,然后调用集合本身的addall.

31

public static <E> Set<E> newSetFromMap(Map<E, Boolean> map)

返回当前map的keyset.

set持有原来的map的引用.

32

public static <T> Queue<T> asLifoQueue(Deque<T> deque)

将一个deque转换为队列,并且是LIFO(后进先出).

ChangeLog

2019-05-01 完成

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据挖掘十大算法(四):Apriori(关联分析算法)
终于到了机器学习实战的第十一章了,这也是继K-均值后的第二个无监督学习算法了。同样的该算法也是在一堆数据集中寻找数据之间的某种关联,这里主要介绍的是叫做Apriori的‘一个先验’算法,通过该算法我们可以对数据集做关联分析——在大规模的数据中寻找有趣关系的任务,本文主要介绍使用Apriori算法发现数据的(频繁项集、关联规则)。
全栈程序员站长
2022/08/14
2.1K0
数据挖掘十大算法(四):Apriori(关联分析算法)
关联规则挖掘(一)
分别称为关联规则的先导 (Antecedent) 和后继 (Consequent)。
Francek Chen
2025/01/22
1520
关联规则挖掘(一)
关联规则挖掘:Apriori算法的深度探讨
Apriori算法是一种用于挖掘数据集中频繁项集的算法,进而用于生成关联规则。这种算法在数据挖掘、机器学习、市场篮子分析等多个领域都有广泛的应用。
TechLead
2023/10/21
1.2K0
关联规则挖掘:Apriori算法的深度探讨
啤酒和尿布放在一起卖得更好?来看看这个故事背后的Apriori算法
Apriori算法号称是十大数据挖掘算法之一,在大数据时代威风无两,哪怕是没有听说过这个算法的人,对于那个著名的啤酒与尿布的故事也耳熟能详。但遗憾的是,随着时代的演进,大数据这个概念很快被机器学习、深度学习以及人工智能取代。即使是拉拢投资人的创业者也很少会讲到这个故事了,虽然时代的变迁令人唏嘘,但是这并不妨碍它是一个优秀的算法。
TechFlow-承志
2020/05/14
1.3K0
通过案例理解Apriori算法
Apriori算法是一种经典的关联规则挖掘算法,用于发现数据集中的频繁项集和关联规则。在本文中,我们将结合一个具体的案例和代码详细讲解Apriori算法的原理和实现。
GeekLiHua
2025/01/21
3510
机器学习算法:关联规则分析
今天给大家分享一个经典的机器学习算法:关联规则分析,从理论到代码到实战,全部拉满。
皮大大
2022/04/18
2.1K0
机器学习算法:关联规则分析
机器学习笔记之python实现关联规则算法Apriori样例
调用apriori进行关联规则分析,具体代码如下,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1,
Jetpropelledsnake21
2021/01/04
1.1K0
【数据挖掘 | 关联性分析】万字长文详解关联性分析,详解Apriori算法为例,确定不来看看?
数据挖掘中的关联分析是一种用于发现数据集中不同项之间的关联关系的方法。关联分析通常用于在大规模数据集中发现频繁项集和关联规则。总的来说,关联规则通过量化的数字决定某物品甲对物品乙的出现有多大的影响。该模式属于描述性模式,属于**无监督学习**的方法
计算机魔术师
2023/10/26
4.6K0
【数据挖掘 | 关联性分析】万字长文详解关联性分析,详解Apriori算法为例,确定不来看看?
【机器学习实战】第11章 使用 Apriori 算法进行关联分析
第 11 章 使用 Apriori 算法进行关联分析 关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务。 这些关系可以有两种形式: 频繁项集(frequent item sets): 经常
片刻
2018/01/15
1.9K0
【机器学习实战】第11章 使用 Apriori 算法进行关联分析
机器学习|关联规则与购物篮分析实战
客户A企业是一家全球知名家具和家居零售商,销售主要包括座椅/沙发系列、办公用品、卧室系列、厨房系列、照明系列、纺织品、炊具系列、房屋储藏系列、儿童产品系列等约10,000个产品。为了维持顾客忠诚度、扩大销售,A企业希望通过顾客已有的购买记录,为顾客推荐更多的产品。请使用关联规则的方法,实现客户的需求。
数据STUDIO
2021/06/24
1.8K0
【机器学习】--关联规则算法从初识到应用
  关联规则的目的在于在一个数据集中找出项之间的关系,也称之为购物蓝分析 (market basket analysis)。例如,购买鞋的顾客,有10%的可能也会买袜子,60%的买面包的顾客,也会买牛奶。这其中最有名的例子就是"尿布和啤酒"的故事了。
LhWorld哥陪你聊算法
2018/09/13
6040
【机器学习】--关联规则算法从初识到应用
机器学习算法-关联规则分析
关联分析是一种从大规模的数据集中寻找有趣关系的方法。一个经常被用到关联分析的例子:购物篮分析。通过查看哪些商品经常在一起被顾客购买,可以帮助商店去了解用户的购买行为。
皮大大
2023/08/23
4980
机器学习(三) 关联规则R语言实战 Apriori
关联规则背景 关联规则来源 上个世纪,美国连锁超市活尔玛通过大量的数据分析发现了一个非常有趣的现象:尿布与啤酒这两种看起来风马牛不相及的商品销售数据曲线非常相似,并且尿布与啤酒经常被同时购买,也即购买尿布的顾客一般也同时购买了啤酒。于是超市将尿布与啤酒摆在一起,这一举措使得尿布和啤酒的销量大幅增加。 原来,美国的妇女通常全职在家照顾孩子,并且她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。 注: 此案例很精典,切勿盲目模仿案例本身,而应了解其背后原理。它发生
Jason Guo
2018/06/20
2.7K0
MADlib——基于SQL的数据挖掘解决方案(27)——关联规则之Apriori算法
数据仓库或数据挖掘从业者一定对“啤酒与尿布”的故事不会陌生。这就是一个使用关联规则的经典案例。根据对超市顾客购买行为的数据挖掘发现,男顾客经常一起购买啤酒和尿布,于是经理决定将啤酒与尿布放置在一起,让顾客很容易在货架上看到,从而使销售额大幅度增长。关联规则挖掘在多个领域得到了广泛应用,包括互联网数据分析、生物工程、电信和保险业的错误校验等。本篇将介绍关联规则方法、Apriori算法和MADlib的Apriori相关函数。之后我们用一个示例说明如何使用MADlib的Apriori函数发现关联规则。
用户1148526
2019/05/25
1.4K0
转:Apriori算法,挖掘数据集中项集的关联规则学习经典
Apriori算法是一种用于挖掘数据集中频繁项集的关联规则学习的经典算法。它基于“Apriori原理”,即如果一个项集是频繁的,那么它的所有子集也必须是频繁的。该算法通过不断生成新的频繁项集来实现。
啵啵鳐
2023/06/20
2280
关联分析(5):Apriori Python实现
在关联分析(3):Apriori R语言实现一文中,写了如何使用R语言进行关联分析,那在Python中如何实现呢?
三猫
2020/01/31
2.6K0
机器学习(八)—Apriori算法
摘要:本文对Apriori算法进行了简单介绍,并通过Python进行实现,进而结合UCI数据库中的肋形蘑菇数据集对算法进行验证。
oYabea
2020/09/07
7960
数据挖掘实战:关联规则挖掘及Apriori实现购物推荐
糖豆贴心提醒,本文阅读时间4分钟 这篇文章主要介绍三个知识: 1.关联规则挖掘概念及实现过程; 2.Apriori算法挖掘频繁项集; 3.Python实现关联规则挖掘及置信度、支持度计算。 希望这篇文章对你有所帮助,尤其是刚刚接触数据挖掘以及大数据的同学,这些基础知识真的非常重要。如果文章中存在不足或错误的地方,还请海涵~ 一. 关联规则挖掘概念及实现过程 1.关联规则 关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,如果两个或多个事物之
小小科
2018/05/02
3.2K0
数据挖掘实战:关联规则挖掘及Apriori实现购物推荐
使用Apriori进行关联分析(如何挖掘关联规则)
  所谓关联规则,指通过某个元素集推导出另一个元素集。比如有一个频繁项集{底板,胶皮,胶水},那么一个可能的关联规则是{底板,胶皮}→{胶水},即如果客户购买了底板和胶皮,则该客户有较大概率购买胶水。这个频繁项集可以推导出6个关联规则:
Ai学习的老章
2019/04/10
1.3K0
使用Apriori进行关联分析(如何挖掘关联规则)
Apriori算法介绍(Python实现)
导读: 随着大数据概念的火热,啤酒与尿布的故事广为人知。我们如何发现买啤酒的人往往也会买尿布这一规律?数据挖掘中的用于挖掘频繁项集和关联规则的Apriori算法可以告诉我们。本文首先对Apriori算法进行简介,而后进一步介绍相关的基本概念,之后详细的介绍Apriori算法的具体策略和步骤,最后给出Python实现代码。 1.Apriori算法简介 Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。A priori在拉丁语中指"来自以前"。当定义问题时,通常会使用先验知识或者假设,这被
llhthinker
2018/03/12
4K0
Apriori算法介绍(Python实现)
推荐阅读
相关推荐
数据挖掘十大算法(四):Apriori(关联分析算法)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档