文章目录
一.集合概述
- 集合和数组都是容器
- 数组是定义完成启动的,类型确定、长度确定,在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有的数组或者移位
- 数组适合的场景
- 当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采用定义的数组存储
2.集合是Java中存储对象数据的一种容器
- 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定,集合像一个气球
- 集合适合做元素的增删操作
- 注:集合只适合存储引用类型数据,如果要存储基本数据类型可以选择包装类
3.集合适合的场景
- 数据的个数不确定,需要进行增删元素的时候
二.Collection集合的体系特点
集合体系结构
/**
* 目标:明确Collection集合体系的特点
*/
public class CollectionDemo1 {
public static void main(String[] args) {
//有序,可重复,有索引
Collection list=new ArrayList();
list.add("Java");
list.add("Java");
list.add("Mybatis");
list.add(23);
list.add(23);
list.add(23);
System.out.println(list);//[Java, Java, Mybatis, 23, 23, 23]
//无序,不可重复,无索引
Collection list1=new HashSet();
list1.add("Java");
list1.add("Java");
list1.add("Mybatis");
list1.add(23);
list1.add(23);
list1.add(false);
list1.add(false);
System.out.println(list1);//[Java, false, 23, Mybatis]
}
}
集合对于泛型的支持
- 集合都是支持泛型的,可以在编译阶段约束集合只能操作某种数据类型
注:集合和泛型都只支持引用数据类型,不支持基本数据类型,所以集合存储的元素被看做是对象
三.Collection集合的常用API
Collection集合
- Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的
CollectionAPI接口如下:
public class CollectionDemo {
public static void main(String[] args) {
//HashSet:添加元素是无序,不重复、无索引
Collection<String> list=new ArrayList<>();
//1.添加元素,添加成功放回true
list.add("Java");
list.add("HTML");
System.out.println(list.add("HTML"));
list.add("MySQL");
list.add("Java");
System.out.println(list.add("黑马"));
System.out.println(list);
//2.清空集合的元素
// list.clear();
// System.out.println(list);
//3.判断集合是否为空,是空返回true,反之。
System.out.println(list.isEmpty());//false
//4.获取集合的大小
System.out.println(list.size());
//判断集合是否包含某元素
System.out.println(list.contains("HTML"));//true
System.out.println(list.contains("java"));//false
//6.删除某个元素,如果有多个重复的元素,默认删除前一个
System.out.println(list.remove("java"));//false
System.out.println(list);
System.out.println(list.remove("Java"));//true
System.out.println(list);
//7.把集合转换成数组,[HTML, HTML, MySQL, Java, 黑马]
Object[] arrs=list.toArray();
// for(int i=0;i< arrs.length;i++){
// System.out.println(arrs[i]);
// }
System.out.println(Arrays.toString(arrs));//[HTML, HTML, MySQL, Java, 黑马]
System.out.println("--------------拓展------------------");
Collection<String> list1=new ArrayList<>();
list1.add("java1");
list1.add("java2");
Collection<String> list2=new ArrayList<>();
list2.add("HTML1");
list2.add("HTML2");
//addAll() 把list2中的元素倒入到list1中去
list1.addAll(list2);
System.out.println(list1);
System.out.println(list2);
}
}
四.Collection 集合的遍历方法
方式一:迭代器
1.迭代器遍历概述
- 遍历就是一个一个的把容器中的元素访问一遍
- 迭代器在Java中的的代表是iterator,迭代器是集合的专用遍历方式
2.Collection集合获取迭代器
2.1Iterator iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引
2.2iterator中的常用方法
boolean hasNext() //访问当前位置是否有元素存在,存在返回true,不存在返回false
E next()//获取当前位置的元素,并同时将迭代器对象移向下一个位置,注意防止取出越界
public class CollectionDemo01 {
public static void main(St