JavaSE - 集合类-单列集合框架

2023-10-29

JavaSE - 集合类-单列集合框架

本节学习目标:

  • 了解Java单列集合框架结构;
  • 了解并掌握Collection接口及其方法;
  • 了解并掌握List集合(接口)及其方法;
  • 了解并掌握Set集合(接口)及其方法;
  • 了解并掌握Queue集合(接口)及其方法;
  • 了解并掌握单列集合实现类的特性和优缺点。

1. 单列集合框架结构

单列集合指只有一列数据的集合,单列集合中的每个数据被称为元素(Element),单列集合使用泛型E限制元素数据类型

Java单列集合框架由Collection接口,继承Collection接口ListSet接口,以及它们对应的多种实现类构成:

单列集合类的继承树

2. Collection 接口

Collection接口为Java单列集合框架中的根接口,它预先定义了单列集合中的基本方法,单列集合中的常用方法如下:

方法 返回值类型 功能
size() int 返回单列集合的长度
isEmpty() boolean 判断单列集合是否为空集合
contains(Object o) boolean 判断单列集合内是否包含o对象
iterator() Iterator<E> 继承于Iterable接口的方法,返回当前单列集合的迭代器
toArray() Object[] Object数组形式返回当前单列集合
toArray(T[] a) T[] 将当前单列集合转换为T类型数组后返回
add(E e) boolean 向单列集合中添加元素E,返回是否添加成功
remove(Object o) boolean 移除单列集合中的对象o,返回是否移除成功
containsAll(Collection<?> c) boolean 判断单列集合c是否为当前单列集合的子集
addAll(Collection<? extends E> c) boolean 将单列集合c中的所有元素添加至当前单列集合,返回是否添加成功
removeAll(Collection<?> c) boolean 移除当前单列集合中与单列集合c交集,返回是否移除成功
removeIf(Predicate<? super E> filter) boolean 根据选择器中的条件移除当前单列集合中的元素,返回是否移除成功
retainAll(Collection<?> c) boolean 移除当前单列集合中与单列集合c的补集,即保留交集内的元素,返回是否移除成功
clear() void 移除当前单列集合中的所有元素

编写代码进行测试:

public class TestCollection {
   
    public static void main(String[] args) {
   
        Collection<Integer> collection = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
        System.out.println("集合的长度:" + collection.size());
        System.out.println("集合是否为空:" + collection.isEmpty());
        System.out.println("集合的Object数组形式:" + Arrays.toString(collection.toArray()));
        Integer[] i = collection.toArray(new Integer[0]);
        System.out.println("将Integer集合转换为Integer数组:" + Arrays.toString(i));
        collection.add(1);
        System.out.println("向集合中添加元素1:" + Arrays.toString(collection.toArray()));
        collection.remove(2);
        System.out.println("移除集合中的2:" + Arrays.toString(collection.toArray()));
        System.out.println("判断集合{1, 3}是否为当前集合的子集:" + collection.containsAll(new ArrayList<>(Arrays.asList(1, 3))));
        collection.addAll(new ArrayList<>(Arrays.asList(6, 7)));
        System.out.println("将集合{6, 7}加入到当前集合:" + Arrays.toString(collection.toArray()));
        collection.removeAll(new ArrayList<>(Arrays.asList(1, 3)));
        System.out.println("将集合{1, 3}从当前集合移除:" + Arrays.toString(collection.toArray()));
        collection.removeIf(new Predicate<Integer>() {
   
            @Override
            public boolean test(Integer integer) {
   
                return integer == 4;
            }
        });
        System.out.println("使用选择器移除集合中的4:" + Arrays.toString(collection.toArray()));
        collection.retainAll(new ArrayList<>(Arrays.asList(6, 7, 8)));
        System.out.println("移除当前集合与集合{6, 7, 8}的补集:" + Arrays.toString(collection.toArray(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaSE - 集合类-单列集合框架 的相关文章

随机推荐

  • ReactJs实现树形结构的数据显示的组件

    1 该组件树形显示数据 2 组件中数据的请求方式为fetch方式 3 点击对应的数据前面的小三角 fetch请求改数据下对应的子数据 并展开该节点 4 将该组件的js less文件放到kpiTree目录下 在kpiTree目录下创建imag
  • Vue 路由

    1 vue router的理解 vue router是vue的一个插件 专门用来实现SPA应用 SPA也就是单页Web应用 特点是 整个应 用只有一个完整的页面 点击页面中的导航链接不会刷新页面 只会做页面的局部更新 数据需要 通过ajax
  • printf打印浮点数,%e %f %g的区别

    打印浮点数有 e f g三种格式 它们的区别如下 e 以科学计数法表示 小数点左边只有一位 小数点右边保留6位 过长则截去 不够则补零 接着是符号e 再接着就是10的多少次幂 f 要求小数点右边保留6位 过长则截去 不够则补零 g 没有上面
  • pandas学习笔记—agg()函数详解

    目录 1 agg 函数定义 2 举例 2 1 简单的列或行统计 2 2 自定义统计函数 2 3 先groupby 再agg 1 agg 函数定义 agg 函数是聚合函数 DataFrame agg func axis 0 args kwar
  • sprintf格式化字符串

    可以利用sprintf对字符串进行格式化 sprintf 目标字符串 格式 占位参数 格式化字符串 void test01 char buf 1024 memset buf 0 1024 sprintf buf 今天是 d年 d月 d 日
  • Failed to start docker.service: Unit not found(Docker服务起不来)

    原文https blog csdn net qq 34508530 article details 84989990 linux部署Docker出现 Failed to start docker service Unit not found
  • 多种方案教你实现iframe嵌套页面相互传参(父子通信)

    文章目录 需求描述 开始上手 上代码 父向子传值 方法一 通过URL传参 方法二 通过window postMessage 方法 注意事项 子向父传值 方法一 通过通过全局变量方式处理 方法二 通过通过window parent postM
  • DVWA-BruteFoce高级安全

    DVWA security high GET包结构 比起来之前low medium等级 可以看到这里多了一个参数 user token 为了防止重放攻击 但是明显能看出来user token就是用户输入密码的md5形式 直接用burpsut
  • 用ChatGPT生成openAI全景报告

    云孚科技基于业内领先的自然语言处理 知识图谱 语义匹配 智能写作等技术 打造了云孚开源情报系统YFINT 并结合ChatGPT模型成果 重磅推出OpenAI调研报告 ChatGPT简介 2022年11月30日 总部位于旧金山的OpenAI推
  • 【13届蓝桥杯复盘】九进制转十进制 顺子日期

    问题描述 九进制正整数 2022 下标9 转换成十进制等于多少 方法 权值展开 2 93 2 9 2 9 0 1478 如果 一定要用代码来实现 C 代码如下所示 include
  • python+selenium实现cookie登录,并抓取指定类class下的html内容

    个人研究学习研究用 1 首先通过链接手动登录 https www educity cn 获取cookie信息 2 再使用站点cookie登录 跳转到https uc educity cn tiku testReport html id 80
  • Hadoop组件的一些总结

    前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构 用户可以在不了解分布式底层细节的情况下 开发分布式程序 充分利用集群的威力进行高速运算和存储 提示 以下是本篇文章正文内容 下面案例可供参考 一 Hadoop的组成 H
  • [转]为什么未来不需要我们?

    为什么未来不需要我们 在21世纪 我们威力无比的三种科技 机器人 基因工程和纳米技术正在使人类成为濒危物种 作者 比尔 乔伊 自从我从事科技创造的那一刻起 我就关注其在伦理上的问题 但直到1998年秋天我才认识到我们在21世纪面临着多大的危
  • python3+flask 开发web(一)

    1 环境准备 1 安装Python https www python org 2 安装python ide pycharm https www jetbrains com pycharm 3 安装flask 安装好了python 电脑就自动
  • 如何使用gdb调试java虚拟机_GDB入门教程之如何使用GDB启动调试

    GDB The GNU Project Debugger 是 Linux 系统下调试 C 和 C 程序的主要神兵 Vim教程网 https vimjc com 介绍多种方式下使用 GDB 启动进程调试的方法和命令 要使得 C 和 C 程序能
  • varchar和char的区别

    1 char n 和varchar n 中括号中n代表字符的个数 并不代表字节个数 所以当使用了中文的时候 UTF8 意味着可以插入m个中文 但是实际会占用m 3个字节 即 n限制了存储多长的值 但是所占用的空间大小不一致 例如varcha
  • 使用 Amazon Rekognition API 进行文本检测和 OCR

    使用 Amazon Rekognition API 进行文本检测和 OCR 这篇博客将介绍如何 使用Amazon Rekognition API 进行文本检测和 OCR 包括如何创建 Amazon Rekognition密钥 安装boto3
  • Java 中的集合框架有哪些?(十四)

    Java 中的集合框架包含了各种不同类型的集合和数据结构 用于存储和处理数据 这些集合和数据结构可以提高程序的性能和可读性 并且可以方便的进行数据操作和算法实现 本文将介绍 Java 中的集合框架 以及各种不同类型的集合和数据结构 Java
  • Vue父子组件传值---- $listeners子传父的父

    最近在写vue子组件给父组件传值时 一不小心写了五个组件 这个时候用到了子组件给父组件传值 其中不乏子组件跨过它的父组件 给它的父组件的父组件传值 也就是给它的爷爷传值 听到这里是不是快晕了 来 上干货 这是demo1 也是最底层的子组件
  • JavaSE - 集合类-单列集合框架

    JavaSE 集合类 单列集合框架 本节学习目标 了解Java单列集合框架结构 了解并掌握Collection接口及其方法 了解并掌握List集合 接口 及其方法 了解并掌握Set集合 接口 及其方法 了解并掌握Queue集合 接口 及其方