第四天Java基础02(集合)

软件测试方法——等价类划分法详解 !如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。 阅读详情

1.栈、队列、数组、链表、红黑树

1.栈的结构为桶型,(先进后出)
2.队列为管型,(先进后先出)
3.数组长度不变,增删的时候会新建数组(查询快,增删慢)
4.链表的地址不是连续的,所以查询慢,增删的时候对整体没有影响(查询慢,增删块)
在这里插入图片描述
5.红黑树
查询速度非常快
在这里插入图片描述

2.List接口(ArrayList、LinkedList)

1.有序、有索引、允许重复元素
2.ArrayList底层使用数组,所以查询快
(System.arraycopy(,))
3.LinkedList列表结构,查询慢,增删快,里面包含了大量操作首尾元素的方法

3.Vector

1.祖先级别的集合

4.Set接口(HashSet、哈希值、哈希表)

1.HashSet集合,实现了Set接口,不允许储存重复元素,没有索引不能用for遍历。无序集合,底层是个哈希表结构,查询速度非常快。
2.由于没有索引,所以可以用迭代器遍历,也可以用foreach遍历。
3.哈希值是十进制的数,是一个逻辑地址,不是实际地址。
4.hashCode();方法可以打印哈希地址,
在这里插入图片描述
5.HashSet在存值的时候分为两步判断,第一步hashCode(),如果不同就存入,如果相同就调用equals判断。
6.哈希表(数组+链表(红黑树))

5.HashSet存自定义的类型

1.必须重写hashCode和equals.

6.LinkedHashSet

1.在HashSet的基础上又加上了链表。
2.由于这条链表记录了存入位置,所以它是有序的。

7.可变参数的使用与原理

1.其底层原理是数组
2.一个方法中只能有一个可变参数
3.可变参数只能写在最末尾
4.终极写法

public void name(int...arr){
	//这就是可变参数
}

8.集合的工具类(Collections)

1.Collections.addAll(list,“A”,“B”,“C”,…);//批量添加
2.Collections.shuffle(list);//打乱顺序;
3.Collections.sort(lsit);//按照默认排序
4.如果需要对自定义的类进行排序,类中必须实现Comparable接口,并重写compareTo()方法,重新定义排列规则。
5.compareTo(this)- 参数 升序反过来降序。
在这里插入图片描述
6.sort方法的另一种使用方式

public static void main(String[] args) {
        ArrayList<User> arr = new ArrayList<>();
        arr.add(new User("迪丽热巴",15));
        arr.add(new User("古力娜扎",16));
        arr.add(new User("玛尔扎哈",14));
        Collections.sort(arr, new Comparator<User>() {
            @Override
            public int compare(User o1, User o2) {
                return o2.getAge() - o1.getAge();
            }
        });
    }

9.Map集合

9.1Map<K,V>

1.双列集合Key,Value
2.Key,Value两者的类型可以不同
3.Key不允许重复,Value允许
4.K与V一一对应

9.2HashMap<K,V>

1.继承Map<k,v>
2.使用了哈希表
3.是无序集合

9.3LinkedHashMap<K,V>

1.加上链表后成为有序集合,存取元素的顺序一致。

9.4Map中常用的方法

9.1.四种方法

Map<String,String> map = new HashMap<>();
        //1.put方法往集合中添加k,v返回被替换的v,如果没有返回null
        String m1 = map.put("A","a");
        //2.remove方法删除K元素返回被删除的V
        String a = map.remove("A");
        //3.get方法获取K对应的V,没有返回null
        String a1 = map.get("A");
        //4.containsKey判断是否存在指定的K
        boolean a2 = map.containsKey("A");

9.2.第一种遍历Map

 public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        String m1 = map.put("A","a");
        String m2 = map.put("B","b");
        String m3 = map.put("C","c");
		//使用迭代器也可以使用增强for循环
        Set<String> k = map.keySet();
        Iterator<String> iterator = k.iterator();
        while(iterator.hasNext()){
            String k = iterator.next();
            String v = map.get(next);
            System.out.println(v);
        }

    }

9.3.第二种遍历方式(Entry)

public static void main(String[] args) {
        Map<String,String> map = new HashMap<>();
        String m1 = map.put("A","a");
        String m2 = map.put("B","b");
        String m3 = map.put("C","c");

        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String,String> e:entries) {
            String key = e.getKey();
            String value = e.getValue();
            System.out.println(key+":"+value);
        }

    }

9.4.HashMap储存自定义类型的K与V

存自定义的Map时一定要注意,重写hashMap和equals方法,确保K的唯一性。

9.5.LinkedHashMap集合

区别在于有序集合。

9.6.Hashtable集合

1.不允许存null
2.早期的双列集合,比较冷门
3.线程安全
4.Hashtable的子类,Properties与IO流集合,仍然热门。

10.map小练习

public static void main(String[] args) {
        Map<Character,Integer> map = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        System.out.println("亲输入字符串:");
        String str = sc.next();
        char[] chars = str.toCharArray();
        for (char aChar : chars) {
            if(map.containsKey(aChar)){
                Integer Value = map.get(aChar);
                map.put(aChar,++Value);
            }else{
                map.put(aChar,1);
            }
        }
        Set<Character> cs = map.keySet();
        for (Character key : cs) {
            Integer Value = map.get(key);
            System.out.println(key+":"+Value);
        }
    }
STM32 FDCAN热插拔恢复机制与自动重发功能优化 本文深入分析了STM32 FDCAN在热插拔场景下触发bus-off状态导致通讯中断的根本原因,指出自动重发功能是问题关键。通过禁用自动重发、配置硬件自动恢复机制及优化总线参数,实现了FDCAN热插拔后的100%稳定恢复,为工业应用提供了可靠的CAN总线解决方案。 阅读详情

相关推荐

解决vscode无法运行npm命令的问题(cmd可行)

Powershell以及vscode中npm命令使用不了

无痕坚守本心的博客 2750

第九天Java基础(Stream流)

第九天Java基础(Stream流)1. Stream流1.1 获取流1.2 常用的方法1.3 特点 1. Stream流 解决集合和数组的遍历问题 1.1 获取流 1.所有的colletion集合都可以,使用stream流 //1.list集合 List<String> list = new ArrayList<>(); Stream...

RestartJava的博客 248

(数字ic验证)从零开始的apb_watchdog验证模块搭建(一、功能介绍与环境搭建)

apb_watchdog验证模块搭建(一)文章目录 文章目录apb_watchdog验证模块搭建(一)文章目录前言一、apb_watchdog简单功能介绍二、测试平台环境搭建1.测试所用模板介绍2.tb与interface2.env与watchdog_pkg3.test与base_sequence4.Makefile总结——当前验证结构 前言 本文介绍了apb_watchdog验证模块的搭建过程与其具体代码,主要包括其中验证环境的构建,测试序列的发送与回归测试收集。主要运用systemvorilog与u

peop1e的博客 9739

第九天Java基础(引用)

第九天Java基础(引用)1. 方法引用( 类名 ::方法名 )2. 如果存在继承关系,可以通过super、this关键字,来引用方法3. 构造方法的引用4. 数组的引用 1. 方法引用( 类名 ::方法名 ) 主要用于Lambda表达式进行优化 以打印一句话为案例 1.接口中只有一个抽象方法 interface MyInterface{ abstract void print(String ...

RestartJava的博客 216

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一小程序源码

2023最新扫码连wifi-扫码挪车-聚合CPS返利多合一系统 系统特点: 目前已接入的 CPS 渠道: 充值:话费充值、电费充值、影视会员充值、会员卡券充值 本地团购:联联周边游 电商平台:京东、拼多多、唯品会、淘宝、抖音美团:外卖、闪购、酒店、到店、优选饿了么:外卖、商超 出行服务:滴滴打车、滴滴加油、滴滴货运、花小猪打车、高德打车、同程打车 连锁餐饮点餐:肯德基、麦当劳、百果园、奈雪的茶、瑞幸咖啡、星巴克、喜茶、汉堡王、必胜客电影票:特价电影票 注意:以上涉及到需要支付的 CPS 渠道,不需要预存!

qq_41837379的博客 3112

Linux下OpenFire+Spark即时通讯环境搭建全攻略(含证书错误解决方案)

本文提供了一份详尽的Linux环境下OpenFire服务器与Spark客户端即时通讯系统的搭建与配置全攻略。内容涵盖从环境规划、服务端部署、数据库配置到客户端连接的全流程,并重点解决了Spark连接时常见的证书验证错误问题,为企业构建私有化、高可用的XMPP通讯平台提供了实战指导。

weixin_29251131的博客 166

java基础:集合

***创建自定义类*///自定义类标准javabean//1、私有化成员变量//2、空参构造方法//3、带全部参数的构造方法//4、gte/set方法returnage;//创建学生对象Students1=newStudent("zhangsan",23);//添加list.add(s1);//遍历for(inti=0;//创建学生对象//添加。

qq_52200849的博客 1974

从零开始构建量化价值投资多因子模型

量化价值投资多因子模型的构建目的在于通过系统性的方法,综合考虑多个影响股票价值的因素,以更准确地评估股票的投资价值,为投资者提供科学的投资决策依据。本模型的构建范围涵盖了从因子的选取、数据的处理、模型的建立到模型的评估和优化等一系列过程。通过对历史数据的分析和回测,验证模型的有效性和稳定性,进而应用于实际的投资组合管理中。本文将按照以下结构进行组织:首先介绍量化价值投资和多因子模型的相关背景知识,包括核心概念和联系;接着详细阐述核心算法原理和具体操作步骤,并给出Python代码示例;

AI天才研究院 1247

Java基础02

总路线请移步主页Java大纲相关文章 今天进行Java基础4、5、6三个模块的归纳

qq_65879241的博客 1009

Android Display Graphics #1 整体框架介绍一

手机屏上显示的内容,2D或3D ,如果是 3D 的,不管是 App 还是游戏,或者简单的图片界面,底层都是通过 GPU、 通过 OpenGL(ES)绘制出来的。是Java层的一个类,提供了一系列API,使用这些API可以实现各种的产品经理要求的效果。显示的不同阶段对这块内存的叫法不同,在上层可以是Window、ANnativeWindow、Surface、SurfaceView、layer、buffer,这些本质上没啥区别,可以广泛意义上理解为用于显示内容的那块内存,只不过各个阶段的操作接口不同。

oDwyane03的博客 1388

docker-compose Install OrangeHRM

OrangeHRM是一个全面的人力资源管理HRM) 系统,它包含任何企业所需的所有基本功能。OrangeHRM旨在支持任何规模的团队,包括初创企业、中小企业以及大型跨国组织。

极致,细节 1006

Java集合02

今天是2025/03/13 16:37 day 05请移步今天进行Java集合 最后三个模块的归纳首先是Java集合的相关内容概括的思维导图。

qq_65879241的博客 931

解密Whisper模型与Speaker Diarization的结合

本文介绍了如何将Whisper语音识别模型与Speaker Diarization(说话人分割)技术相结合,实现多人对话场景下的语音转录和说话人识别。文章详细讲解了技术背景、环境配置和代码实现方法,通过Pyannote进行说话人分割,结合Whisper进行语音转文本,最终输出包含说话人信息的完整转录结果。该解决方案适用于会议记录、访谈分析等场景,显著提升了语音处理的应用价值。

2501_90323865的博客 152

Java 02 - 集合

集合与数组的区别集合与数组都可以存储数据,都是 Java容器。但仅涉及内存层面,不参与数据持久化。特点分类集合数组长度长度可变长度固定元素类型只能存储引用类型可以存储任意类型,包括基本类型与引用类型“泛型”类型“伪泛型”,使用反射可以存储任意引用类型“真泛型”,初始化后存储类型已经固定其他支持索引、重复、去重、无序、排序等功能,提供方法较多,比较灵活支持索引、重复,提供方法较少集合数据结构分类数组:元素具有添加顺序,可以重复。链表:元素具有头尾添加顺序,可以重复。

m0_65735686的博客 1947

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

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

Java基础之集合篇

本篇主要总结JAVA中关于集合相关的基础知识。本篇内容基于网络整理以及自己的总结编辑。在不断的完善补充哦。欢迎小伙伴们在评论区发表留言哦!

小徐的博客 1097

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java基础——集合

前面我们保存多个数据使用的是数组,但是数组有不足的地方数组长度在定义时必须指定,一旦指定,不能更改(如果数组的元素已经满了,此时我们还想往里面添加元素,就只能创建一个更大的数组,并把原数组的数据拷贝进去)数组保存的元素必须为同一类型使用数组进行元素增加比较麻烦集合:可以动态保存任意多个元素,使用比较方便提供了一系列方便的操作对象的方法使用集合添加元素、删除元素的代码简洁了。

weixin_74019079的博客 1347

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java 集合框架 基础 总结 - lenyan

在 Java 编程中,集合框架是一个非常重要的部分,它提供了一组用于存储、操作和处理数据的类和接口。集合框架可以大大简化我们处理数据集合的工作,提高编程效率和代码质量。本文将对 Java 集合框架的基础内容进行总结,包括常见的集合类型、接口及其特点、常用方法等。Java 集合框架位于java.utilCollectionMap和Iterator。Collection是一个用来存储一组对象的接口,它有几个重要的子接口,如ListSet和Queue。Map则是用于存储键值对的数据结构。Iterator。

lenyan~的博客 1324

java基础之集合

Java集合

weixin_43226091的博客 1949

Java基础之集合框架详解

Java集合类总结大全 集合和数组之间的差别 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素。 Collection接口中常用的方法 List接口中常用的方法 ArrayList集合 LinkedList集合 set接口 HashSet集合 LinkedHashSet集合 Collections:集合工具类 双列集合Map Map接口中常用的方法 Map集合的两种遍历方式 一、使用set方法 通过键找值的方式 二、使用Entry对象遍历map集...

小小张自由—>张有博 2492

集合基础知识(Java基础)

集合分为单列集合(元素是一个一个的)和双列集合(元素是成对的)

szm0225的博客 1132

Java 基础之集合

记录一下Jave中常用的集合类的使用方法,这些常用类包括List、Set、Map等类,以及对应的工具类和线程安全使用方法。

QIFU的专栏 2029

【Java基础】Java集合遍历方式

在Java编程中,集合(Collection)是存储和操作对象的核心工具。遍历集合是开发者最频繁的操作之一,但不同场景下选择合适的遍历方式至关重要。Java集合遍历方式的选择需结合具体场景,从可读性安全性性能等维度综合评估。掌握每种方法的核心特性,能显著提升代码质量和开发效率。无论是基础循环还是函数式编程,理解其底层原理(如迭代器机制、流处理)是进阶的关键。延伸阅读Fail-Fast机制与的深层原理。Stream的惰性求值与中间操作/终端操作的区别。

小李同学的博客 1719

Java【集合】

Java的特殊数据容器——集合

在下的博客 1878

Java集合基础

集合是一种容器,用来装数据的,类似于数组。但是我们有数组,为啥还学习集合?数组定义完成并启动后,长度就固定了。集合大小可变,开发中用的更多。

W_chuanqi的博客 1119

Java基础09:ArrayList集合

系列文章目录 day01:Java概述和基础语法 文章目录系列文章目录面向对象和面向过程的思想对比 面向对象和面向过程的思想对比

XXXZhy丶Blog 1686

Java面试之集合基础

文章目录Java集合基础Collection与Collections集合和数组的不同集合分类Collection1. List2. Set3. QueueMap Java集合基础 Collection与Collections Collection是所有集合类的根接口 Collections是提供集合操作的工具类 集合和数组的不同 数组元素可以为基本数据类型值/对象引用 集合元素只能为对...

qq_24095055的博客 2207
上一篇: 第四天Java基础01(内部类、Obj、Data、Calendar、System、StringBuilder、iterator、泛型、斗地主)
下一篇: 第五天Java基础(异常、线程)
RestartJava
博客等级 码龄7年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值