1、集合
1.1、集合的理解和好处
之前保存数据都是用的数组,那么数组有不足的地方,分析如下:
数组缺点:
- 长度开始时必须指定,而且一旦指定,不能更改
- 保存的必须为同一类型的元素
- 使用数组进行增加元素的示意代码 - 比较麻烦 ```java // 写出Person数组扩容示意代码 Person[] pers = new Person[1]; // 大小是1 per[0] = new Person();
// 此时数组已满,增加新的person对象: Person[] pers2 = new Person[pers.length + 1]; for(){} // 循环将pers数组的东西拷进去 pers2[1] = new Person();
// 第二种数组拷贝的方法 使用System.arraycopy()方法 // 源数组 Integer[] integers = new Integer[5]; for (int i = 0; i < integers.length; i++){ integers[i] = i; } // 新的目标数组 Integer[] newIntegers = new Integer[10]; // 参数 1.拷贝源, 2.源的起点, 3.目标, 4.目标的起点, 5.要拷贝多长 // 新的数组中,没有被使用的元素为 null System.arraycopy(integers,0,newIntegers,0,integers.length);
<a name="721a05de"></a>### 1)集合概念1. 可以**动态保存**任意多个对象,使用比较方便。1. 提供了一系列方便的操作对象的方法:add(),remove(),set(),get()1. 使用集合添加,删除新元素的实例代码更加间接明了<a name="XW19Q"></a>## 1.2、Collection继承图<a name="35bd751f"></a>## 1.3、Map继承图<a name="hbeq5"></a>## 1.4、Collection接口和常用方法<a name="cMQCU"></a>### 1)Collection接口实现类的特点1. collection实现子类可以存放多个元素,每个元素可以是Object1. 有些Collection的实现类,可以存放重复的元素,有些不可以1. 有些Collection的实现类,有些事有序的 List, 有些不是有序的Set1. Collection接口没有直接的实现子类,是通过他的子接口Set和List来实现的。<a name="ztJOc"></a>### 2)常用方法1. **add**(元素) 添加一个元素1. **remove**(元素) 删除一个元素,返回一个boolean || **remove**(索引) 返回被删除的元素1. **contains**(元素) 查找该元素是否存在1. **size**() 获取元素个数1. **isEmpty**() 判断是否为空1. **clear**() 清空1. **addAll**(Collection对象) 添加多个元素1. **containsAll**(Collection对象) 查找多个元素1. **removeAll**(Collection对象) 删除多个元素```java// 创建一个集合Collection collection = new ArrayList();// add() 添加一个元素collection.add(1);collection.add(2);// remove()删除指定元素collection.remove(1);// contains() 查找元素是否存在boolean contains = collection.contains(2);// size() 获取元素个数int size = collection.size();// isEmpty() 判断是否为空boolean empty = collection.isEmpty();// clear() 清空集合collection.clear();// addAll() 添加多个元素Collection collection1 = new ArrayList();collection1.add(11);collection1.add(22);collection1.add(33);collection.addAll(collection1);// containsAll(Collection对象) 查找多个元素是否都存在boolean b = collection.containsAll(collection1);// removeAll(Collection对象) 删除多个元素collection.removeAll(collection);
注意
- 集合中存储的都是引用地址,往里面存入1 实则是存入 new Integer(1); 自动装箱
3)Collection接口遍历元素方式1 - itreator
基本介绍
- Iterator对象称为迭代器,主要用于遍历Collection集合中的元素
- 所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象,既可以返回一个迭代器。
- Itreator 仅仅用来遍历集合,Iterator本身并不存放对象。
