千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

集合
1、概念:集合是一种用于存储和操作一组对象的数据结构。它提供了一系列的接口和类,用于处理不同类型的集合,如列表(List)、集(Set)和映射(Map)等。
集合除了有数组没有的功能外,集合还从实现形式进行了变化,数组是线性表,集合可以以链表,hash表,树等形式出现,原因是不同的场景我们要用不同的集合。
1.1、集合整体框架:Java的集合框架从整体上可以分为两大家族。
1、 Collection(接口)家族。该接口下的所有子孙均存储的是单一对象。 Add(s)
2、 Map(接口)家族。该接口下的所有子孙均存储的是key-value(键值对)形式的数据。
Put(key,value)
另外还有三个分支,均是为上述两大家族服务的。
1、 Iterator(迭代器)家族。主要用于遍历Colleciton接口的及其子类而设计。
2、 Comparator(比较器), 在集合中存储对象时候,用于对象之间的比较
3、 Collecitons是工具类。注意该类名带个s,一般就表示工具类。里面提供了N多静态方法,来对Colleciton集合进行操作。
2、Collection接口:Collection接口-定义了存取对象的方法。有两个非常常用的子接口:
1、List接口:存放的元素有序且允许有重复的集合接口。
2、Set接口:存放的元素无序不包含重复的集合接口。
说明:
“有序”-元素存入的顺序与取出的顺序相同.
“无序”—元素存入的顺序与取出的顺序不相同
3、Collection接口中的常用方法:
int size();//大小---现有能访问到的元素个数
boolean isEmpty();//判断这个集合是否为空 size()=0表示集合为空
boolean contains(obbject o);//集合中是否包含o这个对象
Iterator<E> iterator();//集合中获取迭代器的方法
object[] toArray();//把集合中的对象转为一个数组
boolean add(E e);//添加元素
boolean remove(object o);//删除o这个元素
boolean containsAll(Collection<?> c);//包含所有的---先判断c这个集合是不是当前的集合子集(有可能是全子集)
boolean addAll(Collection<? extends E> c);//把c这个集合中所有元素添加到当前集合中----数学中叫做求并集
boolean removeAll(Collection<?> c);//从当前集合中删除所有的c集合中的元素---差集
boolean retainAll(Collection<?> c);//保留当前集合和c集合共有的元素---交集
void clear(); //清除所有的元素
boolean equals(object o);//比较两个集合是否相等
int hashCode();//hash值
Collection接口规定是增删方法,无改查的方法
List:线性结构,就是元素之间依次排列,是有顺序的,也分为两种:
1、ArrayList:动态数组,就是数组的改良
2、LinkedList:链表,这里是双向链表
4、泛型概念:泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?
顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。
泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,
操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。
4.1、特性:1、泛型是用来规定集合里面数据类型的。
2、Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段。
对此总结成一句话:泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。