双非硕转测试之Java学习笔记(一):集合

2024-04-02 15:52

本文主要是介绍双非硕转测试之Java学习笔记(一):集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Java学习-----集合

  • 简单概括
  • 单列集合--collection
    • list接口:
    • vector类:
    • LinkedList类:
    • set接口:
    • HasSet类:
    • LinkedHashSet类:
  • 双列集合--Map
    • Map接口:
    • HashMap类:
    • HashTable类:
    • Properties类:

简单概括

  1. 集合的定义:集合是一个容器,可以容纳多个对象,并且可以动态的增加。
  2. 集合的目的:解决数组无法动态增加的缺点,并且提供多种方法进行crud等等。
  3. 集合的分类:单列集合–collection,和双列集合map。

collection集合包含的子类和接口

单列集合–collection

collection接口进行遍历的方法:

1.通过迭代器 Iterator,原理如下图

在这里插入图片描述

2.增强for循环,原理如下图

在这里插入图片描述

list接口:

定义:是collection接口的子接口,这就意味着list可以继承collection的方法。
常用方法:add、addAll、get、indexOf、remove、set、subList等等。
子类:ArrayList、vector、LinkedList。
ArrayList类:
1.这里需要注意其扩容机制,如下图所示:
在这里插入图片描述 2.线程不安全,所以效率高。

vector类:

1.底层 是一个对象数组。
2.线程同步的,也就是线程安全,但是效率没有ArrayList高。
3.ArrayList和vector的比较,如下图:
在这里插入图片描述

LinkedList类:

1.底层实现了双向链表和双端队列的特点。
2.线程不安全,没有实现同步。
3.ArrayList和LinkedList的对比,实际上可以看做链表和数组的区别,如下图:
在这里插入图片描述

set接口:

定义:是collection接口的子接口,无序,不允许重复元素。
常用方法:和collection接口一样。
子类:HashSet、TreeSet。

HasSet类:

1.底层实际是HashMap,而HashMap的底层是数组+链表+红黑树实现的。
2.之所以是无序的,是因为元素存放的位置是基于哈希值计算得到的,因此无法确定索引的结果。
3.原理如下图所示
在这里插入图片描述
4.关于HashSet的扩容机制,如下图所示:
在这里插入图片描述

LinkedHashSet类:

1.是HashSet的子类,意味继承lHashSet的方法。
2.LinkedHashSet的底层是LinkedHashMap,底层是通过数组和双向链表实现的。
3.因为链表的存在,LinkedHashSet可以确保遍历的顺序和插入顺序一致。

双列集合–Map

map集合包含的z子类

Map接口:

1.Map与Collection是并列的关系,不存在继承关系
2.Map中的元素是以键值对的方式保存的,不可以重复。
3.Map中的键值对的关系是一对一的,通过key值就能获得value值。
4.Map接口的遍历方法有多种,也比较复杂,这里只介绍一种,通过KeySrt的方式获取所有的键:Set keySet = map.Set();再通过key值取得对应的value值。
5.常用方法:put、get、remove、size、isEmpty、clear等等。
5.子类:HashMap、HashTable、Properties。

HashMap类:

1.方法实现Map接口的方法。
2.关于扩容机制:

  1. 先判断table是否为null,为空则为数组扩容(16)。
  2. 通过hash得到一个索引位置,如果为空则直接挂上去。
  3. 修改次数++。
  4. 计算table目前存放元素的个数,并且和临界值判断,如果大于则要扩容。
  5. 当索引位置冲突时,就判断如果哈希值和(key值或者value值)相等,就直接替换了。
  6. 如果哈希值和key值或者value值有一个不相等,就判断是否是红黑树,如果是则按红黑树的规则添加。
  7. 如果是链表,加入的元素则要挨个与链表中的元素判断,不相等则还要判断是否需要树化,不需要就直接加在后面,元素相等的话就直接break,放弃插入。

HashTable类:

1.方法基本和HashMap一致,都实现了Map接口的方法。
2.是线程安全的,而HashMap是线程不安全的。
3.不允许存在null键值。

Properties类:

1.使用特点和HashTable类似。
2.通常用作配置文件。

这篇关于双非硕转测试之Java学习笔记(一):集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/870404

相关文章

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过