29.1.Collection 和 Map
Java的集合类很多,主要分为两大类 重要
Collection
Map
29.2.单列集合 和 双列集合
- 集合主要分为两组,单列集合(集合中的元素是单个值存放)和双列集合(集合中的元素是以键值对的形式存放)
- Collection 接口有两个重要的子接口 List Set ,他们的实现子类都是单列集合
- Map 接口的实现子类是双列集合,存放 Key-value
29.3.Collection 接口实现类的特点
- Collection实现子类可以存放多个元素,每个元素可以是 Object
- 有些 Collection 的实现类,可以存放重复的元素,有些不可以
- 有些 Collection 的实现类,有些是有序的(List),有些不是有序(Set)
- Collection 接口没有直接的实现子类,是通过它的子接口 Set 和 List 来实现的
29.4.Collection 接口常用方法
Collection col = new ArrayList();
add()
:添加单个元素
// 返回 boolean 类型
col.add("小猫咪");
col.add(100);
col.add(true);
col.add(new Integer(10));
// 可以添加不同类型的
remove()
:删除指定元素
// 返回 boolean 类型
list.remove(0);//删除第一个元素
col.remove("小猫咪");//指定删除某个元素
contains()
:查找元素是否存在
// 返回 boolean 类型
boolean con = col.contains(10);
size()
:获取元素个数
// 返回 int 类型
col.size();
isEmpty()
:判断是否为空
// 返回 boolean 类型
boolean em = col.isEmpty();
clear()
:清空
// void 类型
col.clear();
addAll()
:添加多个元素
ArrayList list = new ArrayList();
list.add("红楼梦");
list.add("三国演义");
col.addAll(list);
containsAll()
:查找多个元素是否都存在
// 返回 boolean 类型
ArrayList list2 = new ArrayList();
list2.add("三国演义");
list2.add("小猫咪");
boolean bool = col.containsAll(list2));
removeAll()
:删除多个元素
// 返回 boolean 类型
list.removeAll(list2);
//只要list2里面含有和list相同元素,则list中的会被删去,且返回true
29.5.Collection接口遍历元素方式
- 使用 Iterator 迭代器
- Iterator 对象称为迭代器,主要用于遍历 Collection 集合中的元素
- 所有实现了 Collection 接口的集合类都有一个 Iterator() 方法,用于返回一个实现了 Iterator 接口的对象,即可以返回一个迭代器
- Iterator 仅用于遍历集合,Iterator 本身并不存放对象
//得到一个集合迭代器
Iterator iterator = col.iterator();
//hasNext():判断是否还有下一个元素
while (iterator.hasNext()){
//next()作用:1.下移 2.将下移以后集合位置上的元素返回
Object obj = iterator.next();
System.out.println(obj);
if (obj.equals(xxx)){
//remove()删除当前读取的元素-改变集合,并且继续往下遍历元素,在删除元素时不破坏遍历
iterator.remove();
}
}
// 如果希望再次遍历,需要重置迭代器,因为已经指向最后的元素了
iterator = col.iterator();
在IDEA中,快捷键生成 itit
显示所有快捷键的快捷键 ctrl + j
- for 循环增强
只能用于遍历集合或数组
基本语法:
for (元素类型 元素名 :集合名或数组名) {
访问元素
}
for (Object obj:col) {
System.out.println(obj);
}
在IDEA中,快捷键生成 I