集合进阶

Java集合进阶 在Java中,集合框架(Collections Framework)是用于存储和操作一组对象的强大工具。它提供了多种接口和类,用于处理不同类型的集合(如列表、集合、队列、映射等)。为了帮助你学习Java集合的进阶知识,我将从以下几个方面进行讲解:Java集合框架主要包括以下接口和类:: 所有集合类的根接口。: 有序集合,允许重复元素(如 , )。: 无序集合,不允许重复元素(如 , )。: 队列,支持先进先出(FIFO)或优先级队列(如 )。: 键值对集合(如 , )。: 基于动态数组实现的列表。: 基于双 阅读详情

1.Collection

1.1.集合的特点

        提供一种存储空间可变的存储模型,存儲的数据容量可以时发生改变

1.2.结构

1.3.Collection集合概述和使用

单列接口,不能直接实现,用子接口(Set和List)实现

 1.4.Collection集合的常用方法

1.5.Collection集合的遍历

1.Itertor:迭代器

Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的 iterator( )方法得到

2.Itertor迭代器while循环改进

2.List

2.1.List集合概述和特点

概述

有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。

用户可以通过整数索引访问元素, 并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素

特点:

有序:存储和取出的元素顺序一致

可重复:存储的元素可以重复

2.2.List集合的特有方法 

特有方法:

 for循环改进遍历:

 2.3.列表迭代器

常用方法:

 代码演示:

 与Collection迭代器差不多

2.4.List集合子类特点

1.区别

ArrayList:底层数据结构是数组(查询快,增删慢)

LinkedList:底层数据结构是链表(查询慢,增删快)

2.LinkedList集合特有功能

3.Set

3.1.Set集合概述和特点

1.元素存取无序

2.没有索引,不能用普通for循环进行遍历操作

3.不能存储重复元素

3.2.哈希值

定义:

 是JDK根据对象的地址或字符串或数字计算出来的一串int类型的数值

如何得到哈希值:

如何得到哈希值:hashcode( )

例子:

重写实现不同对象的哈希值相同

3.3.HashSet集合概述和特点

特点:

●底层数据结构是哈希表

●对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序—致

●没有带索引的方法,所以不能使用普通for循环遍历

●由于是Set集合,所以是不包含重复元素的集合

遍历:

3.4.哈希表

●JDK8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组

●DK8以后,在长度比较长的时候,底层实现了优化

 案例:HashSet遍历

 

 重写:hashCode和equals方法

3.5.LinkedHashSet集合和特点

概述:

哈希表和链表实现的set接口,具有可预测的迭代次序(存储和迭代数据的次数一致)

集合特点:

1.哈希表和链表实现的Se接口,具有可预测的迭代次序(链表) ​

2.由链表保证元素有序,也就是说元素的存储和取出顺序是一致的

3.由哈希表保证元素唯一,也就是说没有重复的元素

遍历(增强for)

3.6.TreeSet集合概述和特点

概述: 

是一个有序的集合,它的作用是提供有序的Set集合

特点:

1.元素有序,这里的顺序不是指存储和取出的顺序,而是按照指定的规则进行排序,具体排序方式取决于构造方法 

TreeSet( ):根据其元素的自然排序进行排序 ​ TreeSet( comparator comparato):根据指定的比较器进行排序

​2.没有带索引的方法,所以不能使用普通for循环遍历

3.由于是Set集合,所以不包含重复元素的集合                

3.7.自然排序Comparable的使用

过程:

1.存储学生对象并遍历,创建 TreeSe堞集合使用无参构造方法

2.要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序

 

3.8.比较器排序 Comparator的使用

package Demo;

import java.util.Comparator;
import java.util.TreeSet;

public class Demo6 {
    public static void main(String[] args) {
        TreeSet<Student> students=new TreeSet<Student>(new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                int num = s1.getAge() - s2.getAge();
                int num2=num==0?s1.getName().compareTo(s2.getName()):num;
                return num2;
            }
        });
        //创建学生对象
        Student s1=new Student(29,"xishi");
        Student s2=new Student(28,"wangzhaojun");
        Student s3=new Student(33,"yangyuhuan");
        Student s4=new Student(33,"linqingxia");
        Student s5=new Student(33,"linqingxia");
        students.add(s1);
        students.add(s2);
        students.add(s3);
        students.add(s4);
        students.add(s5);
        for (Student s:students){
            System.out.println(s.getAge()+","+s.getName());
        }

    }
}
class Student{
    private int age;
    private String name;

    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

4.泛型

4.1.泛型概述:

 好处:

1.把运行时期的问题提前到了编译期间

2.避免了强制类型转换

4.2.泛型类

格式:修饰符cass类名<类型>{ } ​ 范例: public class Generic<T>{ }

​此处T可以随便写为任意标识,常见的如T、E、K、V等形式的参数常用于表示泛型

 4.3.泛型方法

4.4.类通配符

4.5.可变参数

 4.6.可变参数的使用

5.Map

5.1.Map集合的概述和使用

概述

Interface Map<K,V> K:键的类型;V:值的类型 ​

将键映射到值的对象;不能包含重复的键;每个键可以映射到最多—个值

5.2.Map集合的基本功能 

 5.3.Map集合的获取方法

 5.4.Map集合遍历

 

6.Collections 

饥荒联机版Mod开发——modmain环境与API深度解析 本文深入解析饥荒联机版Mod开发中的modmain.lua环境与核心API,详细讲解环境表构建原理、API注册与调用时机,并提供高级开发技巧与最佳实践。通过源码分析和实际案例,帮助开发者掌握Mod开发核心技术,解决常见问题,提升开发效率与代码质量。 阅读详情

相关推荐

别再调PID了!用MATLAB/Simulink给四旋翼无人机搭个ADRC控制器(附完整仿真模型)

本文详细介绍了在MATLAB/Simulink环境中为四旋翼无人机搭建ADRC控制器的完整流程,包括核心原理、Simulink建模、参数调试技巧及与PID控制的性能对比。ADRC通过扩张状态观测器(ESO)有效提升无人机在复杂扰动下的控制性能,特别适合四旋翼无人机这类强耦合系统。文章还提供了完整的仿真模型和工程实践问题解决方案。

weixin_26808439的博客 382

黑马Java——集合进阶(List、Set、泛型、树)

数据结构就是计算机存储、组织数据的方式不同的业务场景要选择不同的数据结构常见的数据结构:栈、队列、数组、链表、二叉树、二叉树查找。

pangyaqi的博客 2668

RoCE Overlay

1. RoCE over vxlan 配置vxlan封装的RoCE流量,可以在PF switchdev模式下利用ovs bridge,或直接设置tc rules。下面将基于一对NIC互联的服务器介绍两种方式的使用,并分析封装后的数据包结构。 1.1. 基本配置 - VF与switchdev 首先创建VF,并为两个host设置PF的switchdev模式。使用ovs bridge或tc rules,...

sunshuying1010的博客 3063

Java基础篇——集合进阶(一)

集合是Java基础中的重要内容。我将分享我个人的学习笔记,或许可以帮助大家对集合这部分内容有初步的认知和理解。

cy的Java学习笔记 1512

国产化办公新选择:在银河麒麟V10上部署ToDesk远程桌面

本文详细介绍了在国产操作系统银河麒麟V10上部署ToDesk远程桌面的完整指南。作为国产远程控制工具,ToDesk在连接速度、系统适配性和用户体验方面表现优异,特别适合国产化办公场景。文章包含X86和ARM架构的安装步骤、常见问题排查及性能优化技巧,帮助用户高效实现远程办公。

weixin_33742618的博客 234

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2153

Java:集合以及集合进阶 --黑马笔记

除了ArrayList集合,Java还提供了很多种其他的集合,如下图所示:我想你的第一感觉是这些集合好多呀!但是,我们学习时会对这些集合进行分类学习,如下图所示:一类是单列集合元素是一个一个的,另一类是双列集合元素是一对一对的。Collection是单列集合的根接口,Collection接口下面又有两个子接口List接口、Set接口,List和Set下面分别有不同的实现类,如下图所示:上图中各种集合的特点如下图所示://简单确认一下Collection集合的特点//存取顺序一致,可以重复,有索引。

m0_74098386的博客 1881

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 258

集合进阶-List、Set集合

最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。好了,关于Collection集合,到这里就学习完了。

2302_76719419的博客 2731

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2921

12027.linux flash驱动之IS25LP01G/IS25WWP01G

一页:512字节 --> 扇区 4096字节 --> 块 32k,64k, 层层递进关系。

写给自己的笔记 2289

黑马程序员JAVA学习第五节

黑马程序员JAVA学习第五节 (视频链接黑马程序员全套Java教程_Java基础入门教程,零基础小白自学Java必备教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili) 本节主要内容是,对应视频220- Collection集合 1.集合体系结构 2.创建Collection集合的对象: JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现 多态的方式,具体的实现类ArrayList 3.Collection集合的常用方法 boolean add(E.

weixin_51181574的博客 320

<IBM AIX> 《HACMP 实用手册和命令 HA切换手册》 - 鸿篇巨制,全网最全

操作命令检查磁盘预留策略要将磁盘预留策略更改为 no_reserve集群状态实用程序查看集群状态是否正常SMIT System Management (C-SPOC)Cluster ServicesShow Cluster Services 面板上的选项或 lssrc 命令查看资源组、资源组对应的VG、资源组对应的APPLICATION SERVER# ./cldispsmit常用命令F3退出F4列表Esc+6或者F6查看命令Esc+7或者F7选择多项检查状态。

Else 的博客 3363

集合的进阶

​ 在这之前,我们已经学过了ArrayList集合,但这个集合只是Java中集合的冰山一角而已,在正式学习集合之前我们先来了解一下集合的体系结构。​ 集合总的可以分为两大类:单列集合和双列集合。简单的解释一下,单列集合就是一次只能添加一个数据,二双列集合一次能添加两个数据。​ 我们先来学习一下单列集合:要想要学好单列集合,就应当明确List集合与Set机和各自的特点.​ 对于List系列集合,它的特点是:添加的元素是有序的(指的是存和取的顺序是一样的),可重复,有索引。​ 而对于Set系列集合,他

m0_74135040的博客 1062

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java进阶总结——集合

说明对于以上的框架图有如下几点说明1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。集合接口6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。抽象类5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。实现类8个实现类(实线表示),对接口的具体实现。Collection接口是一组允许重复的对象。...

Marathon_X的博客 205

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java进阶two 集合进阶与Stream流

Java进阶课程的第一篇,集合进阶与Stream流相关内容。学习完基础之后就是进阶的内容了。

weixin_74735725的博客 432

Java_集合进阶Set集合

最后,将所有的Collection集合总结一下,要求大家掌握每一种集合的特点,以及他们的体系结构。

qq_48083892的博客 1278

Java集合及进阶

在方法的形参中最多只能写一个可变参数,在方法的形参当中,如果出了可变参数以外,还有其他形参,那么可变参数要写在最后。在Set集合中add方法返回值不确定,不可重复为true,重复为false,不重复性。创建JavaBean类,Student对象,属性值name,age。在List集合中add方法永远返回值为true,可重复性。如果当前元素是第一次添加,那么可以添加成功,返回true。如果当前元素是第二次添加,那么添加失败,返回false。集合分为单列集合和双列集合两大类。删除remove元素的两个细节。

yuey2003的博客 586

集合进阶(Collection 单列集合)

(去重)

2301_80954543的博客 1613

【Java集合进阶】

计算机存储和组织数据的方式。是指数据相互之间是以什么方式排列在一起的。数据结构是为了更加方便的管理和使用数据。

lidongi的博客 753

集合类进阶

问题 1:“Java 集合的快速失败(fail-fast)和安全失败(fail-safe)的差别是什么?” 快速失败和安全失败都是 java 集合(Collection)的一种错误机制。单线程情况下,遍历集合时去执行增删等改变集合结构的操作;或者多线程情况下,一个线程遍历集合,另一个线程执行增删等改变集合结构的操作。 快速失败,是指失败 / 异常时立即报错,通常会抛出 ConcurrentModificationException 异常,像 java.util 包下面的集合类就是使用这种机制; 安全失败.

weixin_44962371的博客 368

java集合进阶篇-《Collection集合》

java中的集合也是一个重点,同样也是难点,涉及到的东西较多较杂,希望大家能够和我一起来学习java集合进阶方面的知识。预计一周的时间将java集合进阶部分拿下,加油。在Java中,是一个接口,它是所有Java集合框架的根。它定义了集合类必须实现的基本操作,如添加元素、删除元素、迭代等。所有的集合类(如ListSetQueue等)都是Collection接口的直接或间接实现。

欢迎大家一起讨论交流 1053

集合进阶(异常、集合)

如果自己的某种问题,想通过异常来表示,那就需要自己来定义异常类了。我们通过一个实际场景,来给大家演示自定义异常。需求:写一个saveAge(int age)方法,在方法中对参数age进行判断,如果age<0或者>=150就认为年龄不合法,如果年龄不合法,就给调用者抛出一个年龄非法异常。分析:Java的API中是没有年龄非常这个异常的,所以我们可以自定义一个异常类,用来表示年龄非法异常,然后再方法中抛出自定义异常即可。

tokisaki_33的博客 968

JavaSE 集合进阶

添加链接描述

weixin_52358529的博客 136

Java进阶_1集合框架

Java进阶_1 一、集合框架概念 集合是对象的容器,定义了多个对象进行操作的常用方法,类似数组的功能。 和数组的区别 (1)数组长度固定,集合长度不固定 (2)数组可以存储基本类型和引用类型,集合只能存储引用类型 位置:java.util.*; 图1-集合框架图 集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容: **接口:**是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对

Nicole_1_2_3的博客 274

【集合框架Set进阶】

本文深入剖析了Java中HashSet、LinkedHashSet和TreeSet三大Set实现类的底层原理与使用场景。HashSet基于HashMap实现去重,依赖hashCode()和equals()方法;LinkedHashSet通过LinkedHashMap维护插入顺序;TreeSet则借助TreeMap实现元素排序。针对并发场景,文章分析了CopyOnWriteArraySet的写时复制机制及其适用场景。

weixin_64178283的博客 1883
上一篇: 【1】将以下车站对应关系的数据存储到map集合中,key:表示站编号,value:表示站名,并遍历打印(可以不按顺序打印):
下一篇: 从集合到文件 和从文件到集合
浮光1
博客等级 码龄7年 27粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值