Java基础之Collection
文章目录
- 一、Collection介绍
- 二、Collection的常用方法 `Collection应知应会`
- 2.1 调用add()方法增添数据
- 2.2 调用remove()方法删除指定数据
- 2.3 调用clear()方法清空数据
- 2.4 调用contains()方法判断集合中是否存在指定的元素
- 2.5 调用isEmpty()方法判断集合是否为空
- 2.6 调用size()方法获取集合的长度
- 三、Collection的遍历
- 3.1 普通输出方法输出Collection集合
- 3.2 forEach语句输出Collection集合
- 3.3 Iterator迭代器输出Collection集合
- 3.3.1 Iterator迭代器删除Collection集合指定元素
一、Collection介绍
Java集合体系架构分为Collection和Map两大集合框架,其中Collection是单列集合的顶级接口,它具有单列存储的特点,即一次只能添加一个元素;而Map则是双列集合的顶级接口。Collection作为顶级接口,它拥有三个子接口List,Set和Queue。同时,作为顶级接口它抽取了所有实现类的共有方法。
接下来我们将结合代码来具体学习Collection相关知识。
二、Collection的常用方法 Collection应知应会
Collection作为顶级集合接口,它最常见的实现类是ArrayList,LinkedList,HashSet和TreeSet,作为顶级接口它抽取了所有实现类的共有方法,所有实现Collection接口的实现类均可使用这些方法。例如ArrayList,LinkedList,HashSet和TreeSet均可使用如下共有方法。
方法名 | 说明 |
---|---|
boolean add(E e) | 增添数据 |
boolean remove(Object o) | 从集合中移除指定的元素 |
void clear() | 清空集合中的元素 |
boolean contains(Object o) | 判断集合中是否存在指定的元素 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中元素的个数 |
2.1 调用add()方法增添数据
具体实现类为ArrayList的Collection
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//普通输出System.out.println(collection);}
运行结果:
具体实现类为LinkedList的Collection
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为LinkedListCollection<String> collection=new LinkedList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//普通输出System.out.println(collection);}
运行结果:
具体实现类为HashSet的Collection
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为HashSetCollection<String> collection=new HashSet<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//普通输出System.out.println(collection);}
运行结果:
具体实现类为TreeSet的Collection
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为TreeSetCollection<String> collection=new TreeSet<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//普通输出System.out.println(collection);}
运行结果:
2.2 调用remove()方法删除指定数据
接下来我们以具体实现类为ArrayList的Collection来举例
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");collection.add("lisi");//调用remove()方法删除指定数据collection.remove("lisi");//普通输出System.out.println(collection);}
运行结果:(从运行结果中我们看到调用remove()方法只能删除第一个值为lisi的对象,并且当删除lisi之后,后面三个元素wangwu,zhaoliu和lisi位置会左移,这为我们未来删除数据时注意索引的位置,防止漏删)
2.3 调用clear()方法清空数据
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//调用clear()方法清空数据collection.clear();//普通输出System.out.println(collection);}
运行结果:
2.4 调用contains()方法判断集合中是否存在指定的元素
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//调用contains()方法判断集合中是否存在指定的元素boolean zhangsan = collection.contains("zhangsan");System.out.println("集合中存在zhangsan此元素吗?"+zhangsan);boolean aoao = collection.contains("aoao");System.out.println("集合中存在aoao此元素吗?"+aoao);}
运行结果:
2.5 调用isEmpty()方法判断集合是否为空
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//调用isEmpty()方法判断集合是否为空boolean empty = collection.isEmpty();System.out.println("此集合为空吗?"+empty);//调用clear()方法清空集合元素collection.clear();//调用isEmpty()方法判断集合是否为空boolean empty1 = collection.isEmpty();System.out.println("此集合为空吗?"+empty1);}
运行结果:
2.6 调用size()方法获取集合的长度
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//调用size()方法获取集合的长度int size = collection.size();System.out.println("集合的长度为:"+size);//调用clear()方法清空集合元素collection.clear();//调用size()方法获取集合的长度int size1 = collection.size();System.out.println("集合的长度为:"+size1);}
运行结果:
三、Collection的遍历
由于共有方法中并没有带索引的方法,因此Collection无法使用普通for循环来遍历集合,只能使用普通输出方法,Iterator迭代器遍历和forEach语句遍历集合数据。
3.1 普通输出方法输出Collection集合
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//普通输出方法输出Collection集合System.out.println(collection);}
运行结果:
3.2 forEach语句输出Collection集合
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//forEach语句输出Collection集合,Collection对象的数据类型为String,s相当于collectionfor (String s : collection) {System.out.println(s);}}
运行结果:
3.3 Iterator迭代器输出Collection集合
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("zhaoliu");//Iterator迭代器输出Collection集合//由于Collection的数据类型为String,因此Iterator的数据类型也为StringIterator<String> iterator=collection.iterator();//iterator.hasNext()的作用是判断当前位置是否存在元素,若存在元素则为true,否则为falsewhile(iterator.hasNext()){//iterator.next()的作用是获取当前位置元素,之后指向下一个位置System.out.println(iterator.next());}}
运行结果:
3.3.1 Iterator迭代器删除Collection集合指定元素
public static void main(String[] args) {//创建一个Collection对象,并规定其数据类型为String,指明其实现类为ArrayListCollection<String> collection=new ArrayList<>();//调用add()方法增添数据collection.add("zhangsan");collection.add("lisi");collection.add("wangwu");collection.add("wangwu");collection.add("zhaoliu");collection.add("wangwu");//Iterator迭代器输出Collection集合//由于Collection的数据类型为String,因此Iterator的数据类型也为StringIterator<String> iterator=collection.iterator();//iterator.hasNext()的作用是判断当前位置是否存在元素,若存在元素则为true,否则为falsewhile(iterator.hasNext()){//iterator.next()的作用是获取当前位置元素,之后指向下一个位置if(iterator.next().equals("wangwu")){//删除当前元素iterator.remove();}}//forEach语句输出Collection集合for (String s : collection) {System.out.println(s);}}
运行结果:
OK!!!Collection介绍完毕!!!
Java基础之Collection相关推荐
- 【CXY】JAVA基础 之 Collection
概述: 1.Collection java集合框架的根级接口(root interface) 2.常用子接口:List.Set.Queue,注意map是自成体系的 3.方法:新增.包含.遍历.交集.判 ...
- Java基础学习-Collection体系结构和迭代测试
package Collection;import java.util.ArrayList; import java.util.Collection; import java.util.Iterato ...
- java基础---集合collection的方法介绍
package com.henu;import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; / ...
- day15 java基础(Collection类,List类,Object类)
-----------------------------------day15 总结------------------------------------------------- 1:对象数组( ...
- Java基础之Collection和Map
List:实现了collection接口,list可以重复,有顺序 实现方式:3种,分别为:ArrayList,LinkedList,Vector. 三者的比较: ArrayList底层是一个动态数组 ...
- java基础 - 集合Collection
1. 1-50的随机数 用集合实现 生成50个[10,50]之间的随机数,然后按数字从小到大顺序输出.(这次用Map做) 输出格式 数字:出现次数 1 //用ArraryList 集合来实现 2 3 ...
- java,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- 【CXY】JAVA基础 之 Collections
概述: 1.Collections(注意不是Collection,而是Collections,多了一个s) 2.它是一个集合工具类 3.方法分类:常规操作(查找,最大,最小等).排序.线程安全(同步) ...
- 【CXY】JAVA基础 之 Set
概述: 1.Set不允许重复数据,判断重复标准:equals方法 2.HashSet 1.无序(序号的序),允许存在null 2.hashCode值决定它在HashSet中的位置,通过hashCode ...
最新文章
- 在Ubuntu 16.04.3 LTS上安装Go 1.10
- 网络攻城狮怎么看待TCP/IP协议与UDP协议?
- 设置cookie和查找cookie的方法
- 【Android RTMP】音频数据采集编码 ( FAAC 编码器编码 AAC 音频采样数据 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )
- Ansible自动化运维工具介绍
- 鉴机识变,面向未来|RocketMQ Summit 2022 即将来袭
- elisa标准曲线怎么做_如何合理绘制ELISA标准曲线要点
- qt同时连接oracle和mysql_QT连接Oracle和Mysql的详细步骤,已成功~!
- linux nginx完全卸载
- oracle 实例死掉,Oracle 监听莫名死掉
- 长三角,也开始“东北化”了
- 推荐JVM的9款编程语言杀手开发利器
- 两空间异面直线公垂线及交点坐标的求解过程
- hive case when语法_SQL中CASE表达式的妙用
- PHP curl get post通用类
- Nginx系列(3):Nginx配置文件nginx.conf中文详解
- java毕设项目开源啦,springboot+vue+springcloud的家庭理财系统
- 计算机二级数据库题库百度云,计算机二级数据库试题及答案
- Python Counter函数
- locale 国际化配置(springboot)