1.集合中添加另一个集合的方法:
(1).Collection.addAll(被添加的Collection对象)方法:
如:list1.addAll(list2);
(2).Collections.addAll(添加到的目标Collection对象,可变参数的集合或者对象)方法:
如:Collections.addAll(list1, new Object1(), new Object2()…);
Collectionns.addAll(list1, list2…);
注意:Collections是Java集合容器的工具类,相比于(1),使用Collections的(2)更灵活。
2.Java集合中常用的交集、并集和差集操作:
并集:collection对象1.addAll(collection对象2);
交集:collection对象1. retainAll(collection对象2);
差集:collection对象1. removeAll(collection对象2);
注意:上述的集合操作时,集合元素的equals方法会影响操作结果。
3.将其他类型集合转换为List:
Arrays.asList(非List类型的集合对象/可变参数的对象);方法可以将传递的参数转变为List集合。如:Arrays.asList(new Object1(),new Object2(),…);
Arrays和Collections类似,是Array数组类型集合的工具类。
注意:Arrays.asList()方法转换后的List对象是一个size不能改变的对象,如果对该对象做增加或者删除元素操作时,将会报不支持的操作异常。
4.List集合:
List集合主要有两种具体的集合容器:ArrayList和LinkedList。
(1).ArrayList:底层实现是数组,提供了根据数组下标快速随机访问的能力,但是增加和删除元素时因为需要引动数组的元素,因此比较慢。
(2).LinkedList:底层实现是链表,链表访问元素时必须从链表头至链表尾挨个查找,因此只能顺序访问,速度比随机访问要慢。但是增加和删除元素时,只需要修改链表的指针而不需要移动元素,因此速度比较快。
5.LinkedList:
LinkedList除了实现了基本的List接口以外,还提供了一些特定的方法,使得LinkedList可以方便地实现Stack、Queue以及双端Queue的功能。
LinkedList提供的非List接口方法:
(1).getFirst():获取并且不移除LinkedList集合中第一个元素。如果集合为空,抛出NoSuchElementException异常。
(2).element():获取并且不移除LinkedList集合中第一个元素。如果集合为空,抛出NoSuchElementException异常。
(3).peek():获取并且不移除LinkedList集合中第一个元素。如果集合为空,则返回null。
(4).removeFirst():获取并且移除LinkedList集合中第一个元素。如果集合为空,抛出NoSuchElementException异常。
(5).remove():获取并且移除LinkedList集合中第一个元素。如果集合为空,抛出NoSuchElementException异常。
(6).poll():获取并且移除LinkedList集合中第一个元素。如果集合为空,则返回null。
(7).addFirst():向LinkedList集合的头部插入一个元素。
(8).add():向LinkedList集合的尾部插入一个元素。
(9).offer():向LinkedList集合的尾部插入一个元素。
(10).removeLast():获取并且移除LinkedList集合中最后一个元素。如果集合为空,抛出NoSuchElementException异常。
6.Iterator:
Iterator迭代器在java集合容器中应用比较广泛,对于List类型的集合,可以通过下标索引值获取到指定的元素,而对于Set类型的集合,因为Set是没有索引的,因此只能通过迭代器来遍历。
Iterator迭代器是一个顺序选择和遍历集合元素的对象,使用者不需要关心其底层的数据结构和实现方式。Java中的Iterator迭代器是单向的。
Iterator的常用方法如下:
(1).collection对象.iterator()方法:将集合对象转换为Iterator迭代器。
(2).iterator对象.hasNext()方法:判断迭代器中是否还有元素。
(3).iterator对象.next()方法:获取迭代器中下一个元素。
(4).iterator对象.remove()方法:删除迭代器中当前元素。
注意:使用迭代器的好处是,当数据结构从List变为Set之后,迭代集合的相关代码一点都不用改变。
7.List Iterator:
ListIterator是Iterator的子类,它只能有List类型的集合产生,ListIterator是一个双向的迭代器,即它可以向前和向后双向遍历集合。ListIterator的常用方法如下:
(1).list类型对象.listIterator():将List类型的集合转换为ListIterator迭代器。
(2).list类型对象.listIterator(int n):将List类型的集合转换为ListIterator迭代器,同时指定迭代器的起始元素为第n个元素。
(3).listIterator对象.hasNext():判断迭代器中是否还有下一个元素。
(4).listIterator对象.next():获取迭代器中的下一个元素。
(5).listIterator对象.hasPrevious():判断迭代器中是否还有前一个元素。
(6).listIterator对象.previous():获取迭代器中的前一个元素。
(7).listIterator对象.set(元素对象):将当前迭代到的元素设置为另一个值。
8.Map遍历3中方法:
Map<String, Object>map = new HashMap<String, Object>();
map.put(“test1”, object1);
……
map.put(“testn” , objectn);
(1).Map的values()方法可以获取Map值的集合:
Iterator it = map.values().iterator();
while(it.hasNext()){
Object obj = it.next();
}
(2).Map的keySet方法可以获取Map键的Set集合:
Set<String> keys = map.keySet();
for(Iterator it = key.iterator(); it.hasNext(); ){
String key = it.next();
Object obj = map.get(key);
}
(3).通过使用Entry来得到Map的key和value:
Set<Map.Entry<String, Object>> entrySet = map.entrySet();
for(Iterator <Map.Entry<String, Object>> it = entrySet.iterator(); it.hasNext(); ){
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
Object value = entry.getValue();
}
9.Collection和Iterator:
Collection是java中除了Map以外的集合容器的通用接口,如果想自定义一种集合容器类型的类,可以选择实现Collection接口或者继承Collection的子类。
实现Collection接口或者继承Collection子类的时候,必须实现Collection接口的所有方法,而Iterator为定义自定义集合容器类型提供了另一种方便,Iterator是一种轻量级的接口,只需要实现hasNext(),next()方法即可,remove()方法是可选方法。
注意:Foreach循环支持所有实现了Iterable接口的集合容器(Collection接口的父接口是Iterable),Map集合没有实现Iterable接口,因此不支持Foreach循环。
10.java集合容器框架图:
相关推荐
MongoDB的Linux安装 在Linux上安装MongoDB,通常可以通过包管理器(如apt-get、yum等)或从MongoDB官网下载压缩包进行手动安装。以下是通过包管理器安装MongoDB的简要步骤(以Ubuntu为例): 更新系统: 打开终端,使用sudo apt-get update命令更新系统包列表。 安装MongoDB: 使用sudo apt-get install -y mongodb命令安装MongoDB。这将自动处理依赖关系,并安装MongoDB服务器。 启动MongoDB服务: 安装完成后,可以使用sudo systemctl start mongod命令启动MongoDB服务。 验证安装: 使用mongo命令连接到MongoDB shell,如果能够成功连接并显示MongoDB的shell提示符,则表示MongoDB已成功安装并正在运行。 注意:以上步骤是基于Ubuntu系统的示例。对于其他Linux发行版,安装命令可能有所不同。此外,也可以从MongoDB官网下载.tgz压缩包进行手动安装,具体步骤包括下载、解压、配置环境变量、创建数据存储目录等。 M
数据质量管理(41页 PPT)
因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。
你还在为安装docker发愁吗? 你还在为找不到docker安装包而焦虑吗? 你还在为找不到yum源而转而挠腮吗? 你还在为安装docker仓库的不死不得其解吗? 来吧,来我这里,一篇文章解决你的疑惑,释放你的压力,让你顿觉豁然开朗。 我不是谁的救世主, 但我能让你在安装docker的道路上节省那么点儿时间、少走那么点儿弯路! 如果你正在安装docker,来我这里看看。
linux
因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。
060N10NS3-VB;Package:DFN8(5X6);Configuration:Single-N-Channel;VDS:100V;VGS:20(±V);Vth:1~3V;RDS(ON)=6mΩ@VGS=4.5V;RDS(ON)=5mΩ@VGS=10V;ID:100A;Technology:Trench;
Kotlin基础教程.pdf
Spark_Base_Demo.ipynb
AUTOSAR TechnicalReference_CanXcp
简单 PySimpleGUI 窗口的迷宫 Python 课设 概述 本课程设计旨在通过使用 PySimpleGUI 库开发一个简单的迷宫游戏,让学生熟悉 GUI 编程的基础知识,掌握迷宫生成算法,提升 Python 编程能力。PySimpleGUI 是一个易于使用的图形用户界面库,适合快速开发窗口应用。 课程目标 熟悉 PySimpleGUI 的基本使用方法:了解如何创建窗口、布局控件以及处理事件。 掌握迷宫生成算法:学习并实现常见的迷宫生成算法,如深度优先搜索 (DFS) 或递归分割法。 实现迷宫导航功能:设计并实现玩家在迷宫中导航的功能,包括处理键盘输入、绘制路径等。 提升编程能力:通过实际项目练习,增强学生的编程逻辑思维和问题解决能力。 课程设计步骤 1. 环境配置 首先,学生需要确保安装了必要的 Python 库,如 PySimpleGUI。安装过程非常简单,可以通过命令行工具安装。 2. 创建基本窗口 学生将学习如何使用 PySimpleGUI 创建一个基本的窗口界面。该窗口包含用于显示迷宫的画布和一些控制按钮。通过设计这个基本界面,学生可以理解 GUI 应用的基本结构
2024年度全国保密教育线上培训题库及答案(全)
2024年欧洲聚维酮碘市场主要企业市场占有率及排名.docx
推荐了docker配置相关资源,涉及学习视频、电子书籍、练习网站、项目
A题自动驾驶汽车事故的赔偿责任分配方案.docx
2024年欧洲聚酰亚胺薄膜市场主要企业市场占有率及排名.docx
静态路由综合实验(不是他特别完整版)
PPT
PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境(IDE)。以下是在不同操作系统上安装PyCharm的详细步骤: ### 1. 准备工作 - 确保计算机上已安装Python。PyCharm支持Python 2.7和Python 3.x版本(推荐使用Python 3)。 - 访问[PyCharm官网](https://www.jetbrains.com/pycharm/download/)下载最新版本的PyCharm。 ### 2. Windows系统安装PyCharm #### 步骤1:下载PyCharm - 选择适合Windows的版本下载。 #### 步骤2:启动安装程序 - 双击下载的安装程序文件。 #### 步骤3:安装设置 - 在安装窗口中,选择“Custom”自定义安装。 - 选择安装目录,然后点击“Next”。 #### 步骤4:选择组件 - 选择需要安装的组件,通常保持默认即可。 #### 步骤5:设置Python解释器 - 点击“New...”新建一个Python解释器,浏览并选择Python的安装路径,然后点击“OK”。
2024年欧洲聚苯硫醚市场主要企业市场占有率及排名.docx