集合和数组都是容器
数组定义完成并启动后,类型确定,长度固定
在进行增删数据操作的时候,数组是不太合适的,增删数据都需要放弃原有数组或者移位
数组适合的场景,当业务数据的个数是固定的,且都是同一批数据类型的时候,可以采取定义数组存储
集合是java中存储对象数据的一种容器
集合的大小不固定,启动后可以动态变化,类型也可以选择不固定,集合更像气球
集合非常适合做元素的增删操作
注意:集合中只能存储引用数据类型,如果要存储基本类型数据可以选用包装类
数组和集合的元素存储的个数问题
数组定义后类型确定,长度固定
集合类型可以不固定,大小是可变的
数组和集合存储元素的类型问题
数组可以存储基本类型和引用类型的数据
集合只能存储引用数据类型的数据
数组和集合适合的场景
数组适合做数据个数和类型确定的场景
集合适合做数据个数不确定,且要做增删元素的场景
注意:前期先掌握Collection集合体系的使用
Collection集合特点
List系列集合:添加的元素是有序,可重复,有索引
ArryList、LinekdList:有序,可重复,有索引
Set系列集合:添加的元素是无需,不重复,无索引
HashSet:无序,不重复,无索引:LinkedHashSet:有序、不重复、五索引
TreeSet:按照大小默认升序排序,不重复,无索引
package com.itheima.d1_collection; import java.util.ArrayList; import java.util.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); System.out.println(list); } } 集合的代表是?
Collection接口
Collection集合分了哪2大常用的集合体系?
list系列集合:添加的元素是有序、可重复、有索引
Set系列集合:添加的元素是无需、不重复、无索引
如何约定集合存储数据的类型,需要注意什么?
集合支持泛型
集合和泛型不支持基本类型,只支持引用数据类型
Collection集合常用API
Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的
Collection API如下:
package com.itheima.d1_collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class CollectionDemo { public static void main(String[] args) { //HashSet:添加的元素时无需,不重复,无索引 Collection<String> list=new ArrayList<>(); //1.添加元素,添加成功返回true list.add("Java"); list.add("HTML"); list.add("HTML"); System.out.println(list.add("黑马")); System.out.println(list); //2.清空集合的元素 //list.clear(); //System.out.println(list); //3.判断集合是否为空,是空返回true System.out.println(list.isEmpty()); //4.获取集合的大小 System.out.println(list.size()); //5.判断集合中是否包含某个元素 System.out.println(list.contains("Java")); System.out.println(list.contains("黑")); //6.删除某个元素:如果有多个重复元素默认删除前面的第一个 list.remove("Java"); System.out.println(list); //7.把集合转换成数据[Java,独孤求败,HTML,Mybatis] Object[] arrs=list.toArray(); System.out.println("数组:"+ Arrays.toString(arrs)); System.out.println("----------拓展--------"); Collection<String> c1=new ArrayList<>(); c1.add("Java"); c1.add("java1"); Collection<String> c2=new ArrayList<>(); c2.add("赵敏"); c2.add("殷素素"); c1.addAll(c2); System.out.println(c1); } }
Collection迭代器遍历集合:
遍历就是一个一个的把容器中的元素访问一遍
迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式
Collection集合获取迭代器
Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象