一、集合的概念
用来提供一种存储孔吉安可变的存储模型,存储的数据容量可以随时发生改变。
集合体的结构:
| 接口 | 接口 | 实现类 | 特点 |
| Collection 单列集合 | List 集合 | ArrayList | 先进先出排序,元素可重复 |
| linkedList | |||
| Set集合 | HashSet | 无序排列,元素可重复 | |
| linkhashSet | 先进先出排序,元素不重复 | ||
| TreeSet | 按hashCode值排列,元素不重复 | ||
| Map 双列集合 | HashMap | 键+值,元素不重复 |
二、Collection 集合
2.1 Collection集合概述
* 是单列集合的顶层接口,他表示一组对象,这些对象也被称为Collection的元素
* JDK 不提供此接口的任何实现,它是提供更具体的子接口(如 Set、List)实现
2.2 Collection集合的创建对象
因其即集合的最高类,没有提供具体的实现方式,所有需要通过其子类对象进行创建,即采用多态的方式创建对象。
格式: Collection<数据类型> 对象名=new 子类<数据类型>();
eg:Collection array=new ArrayList();
eg: Collection array=new HashSet();
2.3 Collection集合类常用的方法
| 方法 | 含义 |
| boolean add(E e); | 添加元素 |
| boolean remove(object o); | 移除指定的元素 |
| void clear(); | 清楚集合种所有的元素 |
| boolean contains (Object o); | 判断集合种是否存在指定的元素 |
| boolean iEmpty(); | 判断集合是否为空 |
| int size(); | 计算集合长度(元素个数) |
具体实例,这里采用ArrayList子类创建对象
public class aa {
public static void main(String[] args) {
Collection arr = new ArrayList(); //利用多态的方式创建对象arr
arr.add("a1");
arr.add("a2");
arr.add("a3"); //add添加三个元素
System.out.println(arr); // 输出元素 [a1, a2, a3]
arr.remove("a1"); //remove("a1")删除元素为a1
System.out.println(arr); //输出元素[a2, a3]
boolean flag=arr.isEmpty(); //isEmpty()判断集合是否一个元素都没有
System.out.println(flag); //输出flag
boolean flag1 = arr.contains("a2");//contains("a2")判断是否有元素a2
System.out.println(flag1); //输出true
int i=arr.size(); // size() 计算集合中的元素个数
arr.clear(); //clear()删除集合中所有的元素
}
}
2.4 Collection 的遍历
因集合中没有索引的概念,所有无法用for循环遍历,对此JAVA提出了迭代器iterator的功能。也可以用增强for的遍历方式
2.4.1 Iterator 迭代器
——迭代器是集合专用遍历方式,它是一个接口。
Iterator
Iterator 迭代器中常用的方法
E next(); 返回迭代中的下一个元素
boolean hasNext():如果迭代具有更多的元素,则返回true,判断是否有元素
实例案例:输入三个元素存入集合,利用迭代器遍历输出
public class aa {
public static void main(String[] args) {
Collection arr = new ArrayList(); //利用多态的方式创建对象arr
arr.add("a1");
arr.add("a2");
arr.add("a3"); //add添加三个元素
Iterator iterator = arr.iterator(); //创建迭代器
while (iterator.hasNext()) { //判断下一个元素是否为null
String s=iterator.next();
System.out.println(s);
//输出下一个元素
}
}
注:迭代器再使用的时候,next每执行一次,地址值就会+1;在使用next()进行遍历时,最好先把值赋值,然后再输出这个值。
2.4.2 增强for功能输出
增强for 格式 for(数据类型 变量名 :集合名)
public class aa {
public static void main(String[] args) {
Collection arr = new ArrayList(); //利用多态的方式创建对象arr
arr.add("a1");
arr.add("a2");
arr.add("a3"); //add添加三个元素
for (String s : arr) //s表示arr中每个元素
System.out.println(s);
}
}



