java集合Collection常用方法详解

java Collections使用方法与详细分析 Collections 此类仅由对集合进行操作或返回集合的静态方法组成。 用例 import java.util.*; public class Test { public static void main(String[] args) { ArrayList<Integer> arrayList = new ArrayList<>(); arrayList.add(12); arrayList.add(10); . 阅读详情
AI摘要

本文深入探讨Java集合框架,包括Collection和Map体系,分析集合与数组的区别,集合的动态扩展优势及其实现原理。通过示例代码展示集合常用方法如add、remove、contains等,并介绍Java8新特性如lambda表达式、Predicate和Stream操作集合的方法。

前言

出去面试的时候,对java的集合框架考察的知识点还是蛮多的。除了基础的集合常见API使用,对集合底层的实现原理以及数据结构等也有很多考察方面。而自己对这方面知之甚少,特地抽空进行研究和学习一下。

为什么要有集合

提到集合就不得不提一下数组,好多集合底层都是依赖于数组的实现。数组一旦初始化后,长度就确定了,存储数据对象不能达到动态扩展,其次数组存储元素不便于对数组进行添加、修改、删除操作,而且数组可以存储重复元素。这个时候集合对作用显现出来了。集合分为Collection和Map两种体系。下面先介绍Collection的集合类的继承树如下图所示:
在这里插入图片描述
Collection接口是 (java.util.Collection)是Java集合类的顶级接口之一,整个集合框架就围绕一组标准接口而设计,本文研究的集合基于JDK8的实现,下面将会进行多个集合类方法使用和主要方法源码分析,以作为后续出去面试的参考资料。

Collection方法接口介绍

Collection 接口有 3 种子类型集合: List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、ArrayBlockingQueue等,下面是Collection的所有方法。

这些方法即可以操作Set集合,也可以操作Queue和List集合,下面分别使用Collection集合接口的方法说明

方法名说明
boolean add(E e) 向集合添加元素e,若指定集合元素改变了则返回true
boolean addAll(Collection<? extends E> c)把集合C中的元素全部添加到集合中,若指定集合元素改变返回true
void clear()清空所有集合元素
boolean contains(Object o)判断指定集合是否包含对象o
boolean containsAll(Collection<?> c)判断指定集合是否包含集合c的所有元素
boolean isEmpty()判断指定集合的元素size是否为0
boolean remove(Object o)删除集合中的元素对象o,若集合有多个o元素,则只会删除第一个元素
boolean removeAll(Collection<?> c)删除指定集合包含集合c的元素
boolean retainAll(Collection<?> c)从指定集合中保留包含集合c的元素,其他元素则删除
int size()集合的元素个数
T[] toArray(T[] a)将集合转换为T类型的数组
  • 下面是主要方法的演示:
  @Test
    @SuppressWarnings("all")
    public void testCollection() {
        // 创建Collection接口的实现
        Collection collection = new ArrayList<>();
        // 添加元素
        collection.add("嘻嘻");
        String src = "????";
        collection.add(src);
        System.out.println(collection);

        // 创建Collection的实现
        Collection<String> coll = new HashSet<>();
        coll.add("?");
        coll.add("?");
        coll.add("?");
        System.out.println(coll);
        // 添加一个集合数据
        collection.addAll(coll);
        // 输出集合的长度
        System.out.println(collection);
        // 判断是否包含
        System.out.println(collection.contains("?"));
        // 移除元素
        collection.remove("?");
        // 添加对象
        collection.add(new Person("张三", 23, 5000d));
        // 当认为两个对象属性一致,相等时候,需重写hashCode 和 equals方法
        System.out.println(collection.contains(new Person("张三", 23, 5000d)));

        System.out.println("-------");
        collection.add(null);
    
        Collection<String> collection1 = new ArrayList<>();
        collection1.add("嘻嘻");
        collection1.add("?");
        // 求两个集合的交集(只保留collection1存在的元素)
        collection.retainAll(collection1);
        System.out.println(collection);
        // 清空元素
        collection.clear();
        System.out.println(collection);
    }

java8新特性操作集合

  • 使用lambda表达式遍历集合

java8为Collection的父接口(Iterable)提供了一个默认的Foreach方法,我们可以使用它进行集合遍历,若对lambda不太了解,不妨访问一下这篇文章☞ lambda表达式学习

   @Test
    public void testForeach() {
        Collection<String> collection = new ArrayList<>();
        collection.add("i");
        collection.add("love");
        collection.add("china");
        // foreach遍历
        collection.forEach(e-> System.out.println(e));
        // 可以使用方法引用简写
        collection.forEach(System.out::println);
        // 或者迭代器的forEachRemaining方法
       collection.iterator().forEachRemaining(System.out::println);
    }
  • 使用java8的predicate操作集合
    @Test
    public void testPredicate() {
        Collection<Integer> collection = new ArrayList<>();
        // 添加0-49
        for (int i = 0; i < 50; i++) {
            collection.add(i);
        }

        // 移除10-49的数字
        collection.removeIf(e -> (e > 9 && e < 50));
        System.out.println(collection);// 输出[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    }
  • 基于流操作集合
    java8之后引入了Stream相关流操作java集合,通过流大大简化了对集合操作,关于这些流式操作,可以查看这篇文章☞ Stream入门学习,下面是基于流的一些简单演示:
@Test
    public void testIntStream() {
        Collection<Integer> collection = new ArrayList<>();
        Random random = new Random();

        for (int i = 0; i < 10; i++) {
            collection.add(random.nextInt(100));
        }
        System.out.println(collection);
        // collection存储的数值是包装类型,可以将其转换为IntStream
        IntStream intStream = collection.stream().mapToInt(e -> e);
        // intStream.forEach(System.out::println);
        System.out.println(collection.stream().mapToInt(e -> e).sum());
        // 输出最大值
        collection.stream().mapToInt(e -> e).max().ifPresent(System.out::println);
        // 输出最小值
        collection.stream().mapToInt(e -> e).min().ifPresent(System.out::println);
        // 统计大于50的数
        System.out.println(collection.stream().filter(e -> e > 50).count());
        // 原集合每一个值加1
        collection.stream().mapToInt(e-> e+1).forEach(System.out::println);
        // 排序
        collection.stream().mapToInt(e-> e).sorted().forEach(System.out::println);
        // 原数值每一个元素扩大2倍
        int[] ints = collection.stream().mapToInt(e -> e << 1).toArray();
        // 输出原数组
        System.out.println(Arrays.toString(ints));
        // 将数组转流
        IntStream stream = Arrays.stream(ints);
        // 输出流平均数
        System.out.println(stream.average().getAsDouble());
    }
复习Collection_迭代器使用细节_泛型_综合案例 day02_Collection_泛型 主要内容 Collection集合 迭代器 增强for 泛型 教学目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合进行取元素 能够说出集合的使用细节 能够使用集合存储自定义类型 能够使用foreach循环遍历集合 能够使用泛型定义集合对象 能够理解泛型上下限 能够阐述泛型通配符的作用 第一... 阅读详情

相关推荐

集合Collection

集合Collection 1、数组与集合 /* 1.集合与数组存储数据概述: 集合、数组都是对多个数据进行存储操作的结构,简称ava容器 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) 2.数组存储的特点: >一旦初始化以后,其长度就确定了。 〉数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。* 比如: String[]arr;int[]arr1;object[] arr2; 3.数组存储的弊端: >一

A_Pluto_i的博客 585

java之Collection

主要内容 Collection集合 迭代器 增强for List集合 Set集合 学习目标 能够说出集合与数组的区别 说出Collection集合的常用功能 能够使用迭代器对集合进行取元素 能够说出集合的使用细节 能够使用集合存储自定义类型 能够使用foreach循环遍历集合 能够说出List集合和Set集合的区别 能够说出List集合各种实现类的区别 能够说出Set集合各种实现类的区别 能够说出Collection和Map集合的区别 说出Map集合的常用功能 能够遍历Map集

m0_46191714的博客 2万+

Java之Collection集合的详细解析

Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法方法名说明添加元素从集合中移除指定的元素根据条件进行移除清空集合中的元素判断集合中是否存在指定的元素判断集合是否为空int size()集合的长度,也就是集合中元素的个数。

qq_69748833的博客 366

Java——Collection集合

java中Collection集合详解

程序员阿龙的博客 7282

Java集合01:初识集合以及Collection接口方法详解

初识集合以及Collection接口的方法进行详解

小贺想改变 3311

ubuntu20.04 终端安装claude

【代码】ubuntu20.04 终端安装claude。

hongliyu_lvliyu的博客 2589

JAVA集合Collection常用方法详解

提到集合就不得不提一下数组,好多集合底层都是依赖于数组的实现。数组一旦初始化后,长度就确定了,存储数据对象不能达到动态扩展,其次数组存储元素不便于对数组进行添加、修改、删除操作,而且数组可以存储重复元素。这个时候集合对作用显现出来了。集合分为Collection和Map两种体系。下面先介绍Collection的集合类的继承树如下图所示:单列集合只能一次添加一个数据双列集合可以一次添加2个数据。

weixin_65752158的博客 3715

114.Android简单的动态切换app的图标,两种方式

- 默认的图标-->-- 需要切换的图标-->android:label="短信"-- 默认activity-->

曹二少的博客 5572

【Java集合】单列集合Collection常用方法详解

本篇中主要介绍了单列集合接口Collection为我们提供的常用接口,也通过代码的方式带大家体会了一下。在后面的内容中为大家介绍了如何把单列集合中的内容查看出来(遍历),通过讲解一些底层的原理,让大家感受了一下迭代器的使用。当然集合的遍历不仅仅限于这两种方式,例如java8为我们提供的流式遍历集合,希望大家下去后自己也能搜搜相关的遍历方式,尝试使用一下。

云端源想的博客 165

PSCAD学习笔记(1)Project Settings(重点snapshot设置)

若不勾选,则横坐标为实际时间2-7s,故障显示在第3s发生。图片中时间坐标轴显示为0-5s,故障时刻显示为第1s,即0-1s展示系统稳态,1-5s展示系统发生故障后的暂态响应,如何通过快照文件实现?勾选该项后,使用快照文件启动仿真会将仿真起始时间强制设置为0s,反之不勾选则依据快照文件保存的时间轴继续(即坐标为实际时间)。如果已有的快照文件保存的是0s至5s的仿真内容,则仿真运行时间从5s开始,到10s结束。如果已有的快照文件保存的是0s至2s的仿真内容,则仿真运行时间从2s开始,到7s结束;

gwenh的博客 7342

Python在Windows环境下驱动乐视三合一摄像头的深度图像处理实践

本文详细介绍了在Windows系统下,使用Python驱动乐视三合一摄像头进行深度图像处理的完整实践流程。从环境配置、驱动安装、OpenNI与OpenCV库的部署,到深度与彩色数据流的读取、可视化、三维点云转换以及背景移除等应用开发,为开发者提供了从零开始掌握深度摄像头编程的实战指南。

gitlab7runner的博客 231

JAVA 集合框架(一) Collection集合详解和常用方法

Java集合框架是用于组织、存储和操作对象集合的标准库,主要包括Collection和Map两大接口体系。Collection接口分为List(有序可重复,如ArrayList、LinkedList)和Set(无序唯一,如HashSet、TreeSet);Map接口存储键值对(如HashMap、TreeMap)。常用操作包括添加/删除元素、查询集合状态及遍历(迭代器、foreach、Stream API等)。该框架提供了灵活高效的数据结构实现,支持泛型并遵循统一的操作规范,是Java开发中处理集合数据的核心

296

通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法

最近笔者由于项目需要,又得学习一个新工具:SAP Cloud Platform Integration,简称 CPI,以前又叫做HCI - HANA Cloud Platform Integration Service.笔者想通过本文,把使用这个工具的第一手体会,分享给曾经用过SAP CRM中间件,但尚未有机会接触到CPI的朋友们。之所以本文标题里把SAP CRM中间件和SAP CPI关联在一起,是因为二者同广义上说,扮演的都是系统集成里中间件的角色。SAP ERP和CRM通过qRFC进行业务数据同步,而中

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2272

JAVA中的Collection集合方法详解

JAVA集合详解 1、概念: 集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容,它允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是可以往里面保存多个对象的类,存放的是对象,不同的集合类有不同的功能和特点,适合不同的场合,用以解决一些实际问题...

whydeboke的博客 843

基于lstm+gru+transformer的电池寿命预测健康状态预测-完整数据代码

基于lstm+gru+transformer的电池寿命预测健康状态预测-完整数据代码

880

SAP UI5 百科全书的目录

笔者 12 年 SAP UI5 开发岁月中写下的 595 篇 SAP UI5 学习笔记,全部收录到《SAP UI5 百科全书》专栏中去,目录如下。请大家按照自己的学习需要,根据关键字搜索到对应的文章,然后进行学习。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3825

单列集合Collection中的常用方法

Collection是List和Set集合的父类,父类中的方法在子类中也可以使用,这里以ArrayList为例,介绍Colletion中的常用方法。

小何的博客 198

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint​ ,人工智能,计算机视觉,大模型,AI,本文围绕基于BEV的3D检测,解析了PointPillars与CenterPoint两种算法。PointPillars用点柱特征编码网络处理点云,通过2D卷积网络提取特征,检测头为解耦头;CenterPoint将三维物体表为点,分两阶段检测,先找中心点及属性,再细化预测。两者都可借特定骨干网生成BEV特征图且基于BEV检测,但检测头设计和物体表示方式不同。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 27万+

java之Collection集合的常用方法(自用)

Collection集合的常用方法

athqwer的博客 452

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【Java】---Collection体系集合:Collection父接口及其方法

今天的文章重点整理了Collection接口的方法,后续会逐个介绍集合中的其他集合类型。

qq_54185425的博客 1269

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA入门之Collection集合 笔记(35)

Collection集合一、 集合类体系结构二、Collection集合的概述三、Collection集合常用方法1、add——添加元素2、remove——移除指定元素3、clear——清空集合中所有元素4、contains——判断集合是否存在某个元素5、 isEmpty——判断集合是否为空6、size——集合长度四、Collection集合的遍历 一、 集合类体系结构 在接下来的学习中,会先学接口,在使用的时候会使用具体的实现类 在List接口下,之前学习了ArrayList集合,想回顾的请点击Arr

沉迷写代码的程序猿的博客 772

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java集合---02--Collection常用方法

Collection- 单列集合 Collection接口中的15个方法的使用 常用方法 add(Object e):将元素e添加到集合coll中 size():获取添加的元素的个数 addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中 clear():清空集合元素 isEmpty():判断当前集合是否为空 public class CollectionTest { @Test public void test1(){

时光里的博客 302

IDEA-Collection集合概述、常用方法

集合概述 集合:集合是java中提供的一种容器,可以用来存储多个数据 集合和数组既然都是容器,它们的区别是: 数组的长度是固定的,集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。 集合存储的都是对象,而且对象的类型可以不一致,在开发中一般当对象多的时候,使用集合进行存储。 学习集合的目标: 1.会使用集合存储数据。 2.会遍历集合,把数据取出来。 3.掌握每种集合的特性。 Collection接口 定义的是所有单列集合中共性的方法 所有的单列集合都可以使用共性的方法 没有带索引的

weixin_46370945的博客 1251

JavaSE--集合-集合概述以及Collection接口中常用方法

这里写目录标题1、Java集合框架概述2、集合的使用场景3、Java中集合的分类3.1、Collection集合继承树3.2、Collection集合的常用方法3.2.1、add(Object obj):将元素obj添加到集合coll中3.2.2、size():获取添加的元素的个数3.2.3、addAll(Collection coll):将集合coll1中的元素全部添加到当前的集合中3.2.4、isEmpty():判断当前集合元素是否为空3.2.5、clear():清空集合元素3.2.6、contains

qq_46112274的博客 815

Collection中常用的方法

Collection中常用的方法 Collection中能存放什么元素? 没有使用泛型之前,Collection中可以存储Object的所有子类型。 使用了泛型之后,Collection中只能存储某个具体的类型。 (集合中不能直接存储基本数据类型,也不能存java对象,知识存储对象的内存地址) Collection中的常用方法 boolean add(Object e) 向集合中添加元素 Collection c = new ArrayList(); c.add(1200)

TRasdzz的博客 448

Java之Collection常用方法

Collection是所有单列集合的父接口,因此Collection中定义的单列集合(List和Set)通用父接口中的一些方法,这些方法可用于操作所有的单列集合。 单列集合Collectoon<E>常用方法: 1. - public boolean add(E e) 把给定的对象添加到当前集合中 // 创建Collection集合对象,限制集合中元素的类型为String Collection<String> c1 = new ArrayList<>...

m0_58398160的博客 783
上一篇: mysql视图与深入学习
下一篇: 面试之泛型知识复习
Galen-gao
博客等级 码龄9年 931粉丝 137原创
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值