1.Collection集合
1.1集合的体系结构
集合类的特点
提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变
集合类的体系在这里插入图片描述
1.2Collection集合概述和基本使用
Collection集合概述
是单例集合的顶层接口,他表示一组对象,这些对象也称为Collection的元素
JDK不提供此接口的任何实现,它提供更具体的子接口(Set和List)实现
Collection集合基本使用
public class CollectionDemo1{
public static void main(String[] args){
//创建Collection集合对象
Collection c=new ArrayList();
//添加元素:boolean add(E e)
c.add(“hello”);
c.add(“hi”);
}
}
1
2
3
4
5
6
7
8
1.3Collection集合的常用方法
boolean add(E e) 添加元素到集合末尾
boolean addAll(Collection c) 把一个集合中的所有元素添加到另一个集合中
boolean remove(E e) 移除指定的元素
void clear() 清空集合中的元素
boolean isEmpty() 判断集合是否为空
boolean contains(Object o) 判断集合是否包含指定的元素
int size() 获取集合的长度
public Object[] toArray() 把集合转化为数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.4Collection集合的遍历
迭代器的介绍
Iteratoriterator();返回此集合中元素的迭代器,通过集合的iterator()方法得到
注意:使用迭代器时不能对集合进行修改,否则出现并发修改异常ConcurrentModificationException ,解决方案:使用普通for循环
Collction集合的遍历
public class Iterator {
public static void main(String[] args) {
Collection c = new ArrayList<>();
//添加元素
c.add(“aaa”);
c.add(“bbb”);
c.add(“ccc”);
c.add(“ddd”);
//Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
java.util.Iterator it = c.iterator();
//用while循环改进元素的判断和获取
while (it.hasNext()){
String next = it.next();
System.out.println(next);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.5集合使用步骤图解
使用步骤
在这里插入图片描述
2.List集合
2.1List集合概述和特点
List集合概述
有序集合,用户可以精确控制列表中每个元素插入位置 用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表通常允许重复的元素
List集合特点
1.有索引
2.可以重复存储元素
3.元素存储有序
2.2List集合的特有方法
void add(int index,E element) 在此集合的指定位置插入指定元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引处的元素,返回被修改元素
E get(int index) 返回指定索引处的元素
1
2
3
4
5
6
2.3增强for循环
定义格式
for(元素数据类型 变量名:数组/集合对象名){
循环体}
1
示例代码
public class Iterator {
public static void main(String[] args) {
Collection c = new ArrayList<>();
//添加元素
c.add(“aaa”);
c.add(“bbb”);
c.add(“ccc”);
c.add(“ddd”);
for (String s:c){
System.out.println(s);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
内部原理是一个Iterator迭代器,所以遍历时不能修改集合
3.数据结构
数据结构指的是数据的组织方式,不同的集合存储元素特点不同,就是因为底层依赖于不同的数据结构。
栈: 先进后出(子弹匣)
队列:先进先出(排队安检)
数组:查询快增删慢
ArrayList就是数组结构
链表:查询慢增删快
LinkList就是链表结构
1
2
3
4
5
6
4.List集合的实现类
LinkedList底层是链表结构,相当于List而言多了一些针对头和尾操作的方法
List集合有序,可重重,存和取的顺序一致是队列结构
void addFirst(E e) 添加元素到集合第一个
void addLast(E e) 添加元素到集合最后一个
E removeFist() 移除集合的第一个元素
E removeLast() 移除集合的最后一个元素
E getFirst() 获取集合的第一个元素
E getLast() 获取集合最后一个元素