1 集合
数组:装指定数量个,相同数据类型数据的容器
集合:装可变数量个,任意引用数据类型数据的容器
集合和数组的区别:
相同之处: 1 都是容器:可以装多个数据
2 都是引用数据类型
3 元素都有索引:索引从0开始
不同之处:
1 元素个数是否可变: 数组一旦创建 元素个数不能更改
集合创建后 元素个数可以更改
2 元素类型是否相同: 数组创建前必须指定元素类型 只能装指定类型的元素
集合中元素的类型可以不同
3 元素是否可以是基本数据类型: 数组元素可以是任意类型:基本数据类型+引用数据类型
集合元素必须是引用数据类型
4 元素是否有默认值: 数组元素不赋值 有默认初始值
集合元素没有默认值
数组 | 集合 | |
---|---|---|
元素个数是否可变 | 不能更改 | 可以更改 |
元素类型是否相同 | 相同数据类型数据 | 任意引用数据类型数据 |
元素是否可以是基本数据类型 | 任意类型:基本数据类型+引用数据类型 | 引用数据类型 |
元素是否有默认值 | 有 | 没有 |
集合框架
集合框架:与集合相关的 类和接口
顶层接口:
1 Collection : 单列集合的顶层接口:每次操作对应的是一个元素
1.1 子接口:List 有序列表: 元素有下标
1.1.1 实现类: ArrayList
1.1.2 实现类: LinkedList
1.1.3 实现类: Vector
1.2 子接口:Set 不重复列表 元素无下标
1.2.1 实现类: HashSet
1.2.2 实现类: TreeSet
2 Map : 双列集合的顶层接口:每次操作对应的是一对元素
2.1 实现类: HashMap
2.2 实现类: HashTable
2.3 实现类: TreeMap
学习内容:
1 集合框架的结构
2 常见集合实现类的特点
3 常见实现类的遍历方式
2 Collection 接口:
Collection是List和Set的顶层接口
Collection的方法和遍历方式适用于所有的List和Set
方法
1 添加
1.1 boolean add (Object obj); 一次添加一个
// c2.add(“abcd”);
// c2.add(1234);
1.2 boolean addAll (Collection c); 一次把c中的所有元素添加到当前集合中
// c1.addAll(c2);
2 获取
2.1 int size(); 获取元素个数
// c1.size()
2.2 Object[] toArray () ; 转化为Object数组
// Object[] arr=c1.toArray();
2.3 Iterator iterator (); 获取遍历集合的迭代器 (获取一个对象 此对象封装了遍历集合的功能)
3 删除
3.1 void clear() ; 删除所有元素
// c1.clear();
3.2 boolean remove (Object o); 删除一个
// c1.remove(111);
3.3 boolean removeAll (Collection c); 一次把c中所有的元素从当前集合中删除
// c1.removeAll (c2);
4 判断
4.1 boolean isEmpty (); 如果此 collection 不包含元素,则返回 true
// c1.isEmpty() 判断是否为空
4.2 boolean contains (Object o) ; 如果此 collection 包含指定的元素,则返回 true
// c1.contains(“123”) 判断是否包含一个
4.3 boolean containsAll (Collection o); 如果此 collection 包含指定 collection 中的
所有元素,则返回 true
// c1.containsAll(c2) 判断是否包含所有
Iterator : 迭代器接口
boolean hasNext(); 判断是否还有元素可以迭代
Object next(); 获取一个元素
package com.zhiyou1.day16;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01Collection {
public static void main(String[] args) {
Collection c1 = new ArrayList();
c1.add("111");
c1.add("aaa");
System.out.println(c1);
Collection c2 = new ArrayList();
c2.add("222");
c2.add("bbb");
c2.add(2233);
c1.addAll(c2);
System.out.println(c1);
//c1.clear();
System.out.println(c1.remove(111));
System.out.println(c1.size());
//遍历Collection方式1:简洁for循环
//唯一优点:简洁
//简洁for循环缺点:1 不能获取下标
// 2 遍历时不能进行对元素进行增删
/*for循环c2集合&#