目录
一、介绍
- Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes 。
- 其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD。
例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。
- Collection :用来存储管理一组对象 objects ,这些对象一般被成为元素 elements
- Set : 元素不能重复,背后隐含着查找/搜索的语义
- SortedSet : 一组有序的不能重复的元素
- List : 线性结构
- Queue : 队列
- Deque : 双端队列
- Map : 键值对 Key-Value-Pair ,背后隐含着查找/搜索的语义
- SortedMap : 一组有序的键值对
⭐Java框架的优点及作用
- 使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码
- 学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景
二、接口
🚀Collection 接口说明
🎄Collection 常用方法说明
🌊Collection 示例
Collection 是一个接口,只能引用它具体的一个实现类。
- 这里涉及到了泛型的语法,简单介绍一下,具体的使用会在后面的文章中详细介绍。
- 在类后面写一个尖括号<>,尖括号中指定什么类型,引用的类就存放对应的数据类型。
import java.util.ArrayList;
import java.util.Collection;
public class TestDemo1 {
public static void main(String[] args) {
//使用< >指定了某一个数据类型,那么add()方法中只能放对应的数据类型
//第二个< >中的内容可以省略,但是尖括号不可以省略
Collection<String> collection = new ArrayList<String>();
collection.add("hello");
//< >中只能放引用数据类型,不能放基本数据类型
//基本数据类型只能放对应的包装类
Collection<Integer> collection1 = new ArrayList<>();
collection1.add(2);
}
}
🌊Collection 常用方法代码示例:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Arrays;
public class TestDemo1 {
public static void main(String[] args) {
//只能存放String类型的数据
Collection<String> list = new ArrayList<>();
System.out.println(list.size()); //元素个数,当前没有存放元素
System.out.println(list.isEmpty()); //判断集合是否为空,当前集合为空,返回true
list.add("我");
list.add("爱");
list.add("Java");
System.out.println(list.size()); //元素个数,3
System.out.println(list.isEmpty()); //判断集合是否为空,当前集合为有元素
Object[] array = list.toArray();
System.out.println(Arrays.toString(array)); //打印元素
for (String s : list) {
System.out.println(s); //打印每一个元素
}
list.remove("爱"); //移除一个元素
for (String s : list) {
System.out.println(s); //打印每一个元素
}
list.clear(); //删除集合中所有的元素
System.out.println(list.size()); //此时集合中没有元素
System.out.println(list.isEmpty()); //判断集合是否为空,此时集合为空,返回true
}
}
//运行结果:
0
true
3
false
[我, 爱, Java]
我
爱
Java
我
Java
0
true
🚀Map接口说明
🎄Map常用方法说明
🌊Map代码示例
import java.util.Map;
import java.util.HashMap;
public class TestDemo1 {
public static void main(String[] args) {
//k的类型:String v的类型:String
Map<String, String> map = new HashMap<>();
System.out.println(map.size()); //元素个数,当前没有存放元素
System.out.println(map.isEmpty()); //判断集合是否为空,当前为空,返回true
System.out.println(map.get("作者")); //根据k查找对应的v,找不到就返回默认值,String类型的默认值为null
System.out.println(map.getOrDefault("作者", "佚名")); //根据k查找对应的v,如果没有k就会返回defaultValue的内容("佚名")
System.out.println(map.containsKey("作者")); //判断是否包含k,此时没有k("作者")
System.out.println(map.containsValue("佚名")); //判断是否包含v,此时没有v("佚名")
map.put("作者", "鲁迅"); //放元素
map.put("标题", "狂人日记");
map.put("发表时间", "1918年");
System.out.println(map.size()); //元素个数
System.out.println(map.isEmpty()); //判断是否为空
System.out.println(map.get("作者")); //根据k查找对应的v
System.out.println(map.getOrDefault("作者", "佚名")); //根据k查找对应的v,如果有k就会返回k对应的v(此时"作者"对应"鲁迅")
System.out.println(map.containsKey("作者")); //判断是否包含k,此时有k("作者")
System.out.println(map.containsValue("佚名")); //判断是否包含v,此时没有v("佚名")
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey()); //返回所有的键值对
System.out.println(entry.getValue());
}
}
}
//运行结果:
0
true
null
佚名
false
false
3
false
鲁迅
鲁迅
true
false
作者
鲁迅
发表时间
1918年
标题
狂人日记
🚀实现类
这篇文章只是总结性的介绍了Java中的集合框架,后序会对集合框架中的每个类进行详细的介绍!