JAVA复习三——CH5 Java Collection 、CH6 MultiThread

CH5 Java Collection(集合)

5.1 Java集合框架(位于java.util包中)

图一 集合框架图

        从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

        Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。

5.2Java中Collection和Collections、Array和Arrays的区别

(1)Collection和Collections的区别

1.集合接口Collectoin

Collection是java.utill包下集合类的上级接口,继承与它有关的接口主要有List和Set。

2. 工具类Collections

Collections是java.util包下的针对集合类的一个静态工具类,它包含有关集合操作的静态方法,它提供了一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。

(2)Array和Arrays的区别
1. 数组类Array

Array类在Java中是最基本的一个存储结构。
作用: 它提供了动态创建和访问Java数组的方法。其中元素的类型必须相同。
优缺点: 下率高,但容量固定无法动态改变。它无法判断其中实际存在有多少元素,length只是告诉我们array的容量。

2. 工具类Arrays

Arrays类是Java中提供的一个工具类,在java.util包中。该类包含了一些方法用来直接操作数组,比如如何直接实现数组的排序、搜索等。此类还包含一个允许见数组作为列表来查看的静态工

5.3 Array

(1) Declaration


(2) Operation

1.Sort (排序加输出)

2.copyOf / copyOfRange

3.fill

4.Equal Judgment

!!!注:数组的比较不能用“==”。只能用.equals函数或者使用hashCode 每个元素相同的数组的 hash 相同)

5.4 Collection

(1)ArrayList

Array和ArrayList的不同点:

  • 存储内容比较:Array可以包含基本类型和对象类型,ArrayList却只能包含对象类型,Array数组在存放的时候一定是同种类型的元素,ArrayList就不一定了
  • 空间大小比较:Array数组的空间大小是固定了,所以需要提前确定合适的空间大小,ArrayList的空间是动态增长的,而且每次添加新的元素的时候都会检查内部数组的空间是否足够
  • 方法上的比较:ArrayList方法比Array更多样化,支持迭代器操作
ArrayList声明:

ArrayList可以不声明大小,当添加元素时,ArrayList会线性增长。同时也可以指定大小。下面的HashMap也是如此

ArrayList方法:

增加元素使用add,得到元素使用get,查找使用indexOf

(2)LinkedList(链表)

链表就不多说了,估计大家都学的很多了,简单看下链表里的方法:

(3)HashMap(这个很重要,算法竞赛经常考)简单点就是值和键一一对应

简单看下方法:

下面是一个HashMap的实例,建议自己动手敲一下。

(4)Iterator

通过使用迭代器,我们可以逐个访问集合中的元素,而不需要使用传统的 for 循环或索引。这种方式更加简洁和灵活,并且适用于各种类型的集合。目前(课上)常用的迭代器有ArrayList、LinkList、HashMap三个数据类型使用迭代器。同时ArrayList也可以使用foreach进行循环输出

(5)foreach循环

for(String a :  ArrayList<String> arraylist =new Arraylist())  

另外一种等效输出(注意:HashMap.keySet)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息犯罪与计算机取证

1.信息安全 信息安全的三种定义p2 ISO的 为数据处理系统建立和采取的技术和管理的安全保护&#xff0c;保护计算机硬件&#xff0c;软件数据不因偶尔或恶意的原因而受到破坏&#xff0c;更改和泄露 欧盟的 在既定的密级条件下&#xff0c;网络与信息系统抵御意外或恶意行为的能…

【C++】const 关键字

想要正确理解const关键字&#xff0c;只需记住一句话&#xff1a; cosnt关键字优先修饰左边&#xff0c;如果左边每东西&#xff0c;就作用于右边。 const int a; 修饰int a 不能改变 const int *a ; int const *a; 修饰int 指针a指向的地址可以改变&#xff0c;但是地址中…

flask文件夹列表改进版--Bug追踪

把当前文件夹下的所有文件夹和文件列出来&#xff0c;允许点击返回上层目录&#xff0c;允许点击文件夹进入下级目录并显示此文件夹内容 允许点击文件进行下载 from flask import Flask, render_template, send_file, request, redirect, url_for import osapp Flask(__name_…

抖店只能做和营业执照对照的产品吗?开店基础教程,新手可收藏!

我是王路飞。 抖店的营业执照有多重要呢&#xff1f;关系到你店铺的类型、类目和产品。 尤其是适合新手做的个体店&#xff0c;不涉及对公账户&#xff0c;货款可以直接提现到你的私人银行卡里&#xff0c;保证金也只有企业店铺的一半。 &#xff08;只需要身份证就能开通的…

深入Apache Commons Config:管理和使用配置文件

第1章&#xff1a;引言 咱们都知道&#xff0c;在软件开发中&#xff0c;管理配置文件是一件既重要又让人头疼的事。想象一下&#xff0c;咱们的应用程序有一堆设置需要调整&#xff0c;比如数据库的连接信息、应用的端口号&#xff0c;或者是一些功能的开关。如果这些信息硬编…

uni-app 命令行创建

1. 首先创建项目&#xff0c;命令如下: npx degit dcloudio/uni-preset-vue#vite-ts uni-app-demo如果出现报错&#xff0c;如下图. 大概率就是没有目录C:\Users\Administrator\AppData\Roaming\npm 解决办法&#xff1a; 创建目录 C:\Users\Administrator\AppData\Roaming\n…

基于nodemailer实现邮件发送、附件发送、多人发送

文章目录 1、QQ邮箱如何设置授权码2、具体代码 1、QQ邮箱如何设置授权码 QQ邮箱SMTP/IMAP服务 1、点击账号与安全 2、安全设置 3、设备管理&#xff0c;可以查看有多少个授权码 2、具体代码 from 这个参数&#xff0c;有两种写法 qq号qq.com"姓名"<qq号qq.co…

UDP Ping程序实现--第5关:客户端向服务器发送消息并接收消息

✨创作不易&#xff0c;还希望各位大佬支持一下 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的意见是我进步的财富&#xff01; 任务描述 本关任务&#xff1a;P…

【数据库系统概论】第3章-关系数据库标准语言SQL(2)

文章目录 3.4 数据查询3.4.1 单表查询3.4.2 连接查询3.4.3嵌套查询3.4.4 集合查询3.4.5 基于派生表的查询3.4.6 select 语句的目标列 3.4 数据查询 格式 SQL执行顺序 3.4.1 单表查询 基础查询 select * from student // 不重复 select distinct sname from student // 命名…

C++ Lambda表达式的完整介绍

c在c11标准中引入了lambda表达式&#xff0c;一般用于定义匿名函数&#xff0c;使得代码更加灵活简洁。lambda表达式与普通函数类似&#xff0c;也有参数列表、返回值类型和函数体&#xff0c;只是它的定义方式更简洁&#xff0c;并且可以在函数内部定义。 什么是Lambda表达式…

【番外】在Windows安装Airsim/UE4踩坑合集

在Windows安装Airsim/UE4踩坑合集 1.安装过程中一定要确保Epic Games Launcher是英文环境&#xff0c;保存路径什么的也尽量是英文。2.UE4中的虚幻引擎一定要安装4.27版本以上的&#xff0c;不然的话最后运行vs的时候会报语法错误&#xff0c;网上根本查不到的那种错误。换了版…

代码随想录 213. 打家劫舍 II

题目 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在…

Servlet技术之Listener监听器

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 Servlet技术之Listener监听器 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是…

谷歌被曝或再次大裁员!3万员工面临被AI取代

据报道&#xff0c;继1.2万大裁员之后&#xff0c;谷歌又计划重组广告销售部门——这将导致3万名员工面临裁员的风险。 这一年的科技行业&#xff0c;可以说是从年头裁到了年尾&#xff0c;还越裁越多了。 而这次谷歌的部门重组计划&#xff0c;让打工人们发现&#xff0c;除…

运维工程师的出路:探索IT界“万金油”的职业发展之旅

运维工程师的未来之路:不只是IT界的“万金油” 当下,运维工作似乎正处在一个多事之秋,一方面他们必须应对技术的迅速更迭和业务需求的不断提升,另一方面,关于"35岁危机"的论调也不绝于耳。运维人员究竟该如何面对自己的职业生涯,以及他们的出路到底在哪里?这…

【Vulnhub 靶场】【Funbox: Scriptkiddie】【非常简单】【20210720】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 靶场下载&#xff1a;https://download.vulnhub.com/funbox/Funbox11.ova 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年07月20日 文件大小&#xff1a;1.3 GB 靶场作者&…

盘古信息IMS-MOM制造运营管理系统,构建生产现场管理信息系统的最佳选择

在当今高度竞争的制造行业中&#xff0c;高效的生产管理是企业成功的关键。盘古信息IMS-MOM制造运营管理系统作为一款领先的管理系统其关键特性为制造企业构建生产现场管理信息系统提供了强大的优势。IMS-MOM不仅仅是一个软件系统&#xff0c;更是一种技术和管理手段的结合&…

【Kafka】Kafka客户端认证失败:Cluster authorization failed.

背景 kafka客户端是公司内部基于spring-kafka封装的spring-boot版本&#xff1a;3.xspring-kafka版本&#xff1a;2.1.11.RELEASE集群认证方式&#xff1a;SASL_PLAINTEXT/SCRAM-SHA-512经过多年的经验&#xff0c;以及实际验证&#xff0c;配置是没问题的&#xff0c;但是业务…

第6章1-字符串及正则表达式 p63

字符串的常用方法 p63 p64 字符串是不可变数据类型 方法名描述说明str.lower()将str字符串全部转成小写字母并产生一个新的字符串&#xff0c;str字符串保持不变str.upper()将str字符串全部转成大写字母并产生一个新的字符串&#xff0c;str字符串保持不变str.split(sepNone)…

Java-Maven3.9.6:Maven依赖管理 / 安装-配置-使用

一、理解Maven Maven是一个开源的项目管理工具&#xff0c;主要用于构建和管理Java项目、依赖管理和文档生成&#xff0c;它可以自动下载所需的依赖库&#xff0c;并自动构建整个项目。理解Maven需要了解以下几个方面&#xff1a; 1. 项目对象模型&#xff08;Project Object…