Collection 集合

在Java中 集合框架的顶层接口就是java.util.Collection 和 java.util.Map
其中Collection接口中存放元素的基本单位是:单个元素
而Map接口中存放元素的基本单位是:单对元素

而我们今天学习的是List集合,它是Collection接口的子接口 ,其实我们开发中很少直接使用Collection接口,而是更多的使用该接口的子接口:List接口、Queue接口以及Set接口

常用方法
boolean add(E e) 用于将参数指定的元素e放入当前集合中
boolean addAll(Collection<? extends E> c)
用于将参数集合c中的所有元素放入当前集合中
boolean contains(Object o)用于判断当前集合是否包含参数指定的单个元素
boolean containsAll(Collection<?> c)
用于判断是否包含参数c中的所有元素
boolean remove(Object o) 用于将参数指定的单个元素从当前集合删除
boolean removeAll(Collection<?> c)
用于删除参数集合中的所有元素
void clear()用于清空当前集合中的所有元素
int size() 用于获取集合中的元素个数
boolean isEmpty() 用于判断当前集合是否为空
boolean retainAll(Collection<?> c)
用于计算调用对象和参数对象的交集并保留到当前集合中,覆盖原有数据
当前集合中的元素若发生改变则返回true,否则返回false

List 集合

java.util.List接口是Collection接口的子接口
该集合中的所有元素拥有先后放入次序,并且允许重复。 简称有序不唯一
该集合的主要实现类由:ArrayList类、LinkedList类、Stack类
其中ArrayList类的底层是采用动态数组实现的,因此访问元素方便,增删元素不方便
其中LinkedList类的底层是采用链表实现的,因此访问元素不方便,增删元素方便
其中Stack类的底层是采用动态数组实现的,该集合主要用于描述具有后进先出特性的数据结构,叫做栈(last in first out LIFO)

常用方法
void add(int index, E element)
用于将元素element插入到下标index的位置
boolean addAll(int index, Collection<? extends E> c) 用于将集合c中的所有元素插入到下标index的位置
E get(int index)
用于根据参数index指定的下标获取对应的元素并返回
E remove(int index)
用于根据参数index指定的下标位置来删除元素
返回被删除的元素值
E set(int index, E element)
用于将参数index指定下标位置的元素修改为element,返回修改之前的元素
List<E>subList(int fromIndex, int toIndex)
用于获取子List,sublist获取的List与原List占有相同的存储空间,对子List的操作会影响到原List

Java中的泛型机制

通常情况下集合中允许存放各种不同类型的对象,此时这些对象都被看做Object类型放入,当集合中的这些数据被取出之后也是Object类型,为了表达数据的真实类型需要做强制类型转换,而强制类型转换很可能引发类型转换异常

所以泛型机制的出现,明确要求集合后跟<数据类型>,规范了该集合可以存放的类型

集合 <数据类型> 变量名 = new 集合<同前边的数据类型,可写可不写>();

泛型的本质就是参数化类型,也就是让数据类型作为参数传递的方式,其中E相当于形式参数负责占位,当准备集合时<>中的数据类型相当于实际参数负责给形式参数E进行赋值,此时集合中所有E都被替换为实际参数类型,由于实际参数可以传递的类型非常广泛,因此得名”泛型”



10月      Java

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!