在java的开发中会经常用到集合与泛型,下面根据本次学习作出如下总结。
一、集合
1、集合分为两大体系,Collection和Map
Collection又分为多种集合类,其中比较常见的有:
List 该集合的特点是,集合中元素有序、可重复
Set 该集合类的特点是,集合中的元素是无序的、不可重复的。
Queue(队列)用的比较少。
Map 集合是由一组键值对组成,当添加的元素的键已经存在,就会把该元素的值覆盖前面的值
集合常用类的体系结构如下:
2、Collection是一个接口,需要通过实现该接口的类创建对象来实例化,例如:
Collection c=new ArrayList();
ArrayList实现了Collection接口
常用的方法
add()添加一个元素
addAll()添加一个Collection
clear()移除所有元素
contains()判断是否包含指定元素
containsAll()判断是否包含指定Collection的所有元素
equals()比较Collection与指定对象是否相等
hashCode()返回该Collection的哈希码值
isEmpty()判断该Collection是否为空
remove()移除某元素
toArray()返回包含该Collection所有元素的数组
3、List接口是Collection子接口
List是有序的Collection,可根据索引把元素精确的插入指定位置
常见的实现类有ArrayList、LinkedList、Stack、Vector
与Collection相比多出几个不同的方法
indexOf()返回某元素第一次出现的index
lastIndexOf()返回某元素最好一次出现的index
set(int index Object o),将元素插入到指定index上
4、Set接口也是Collection子接口
Set中的元素是否重复有两个判断条件
元素是否相等,通过equals()判断
元素哈希码值是否相等
5、Map存在着映射关系,由键映射到值,键不可重复,且每个键只能映射一个值
常用的方法
get(key)通过键获取映射值,如果键不存在则返回null
put(key,value)为集合添加一个键值对元素
二、泛型
集合类可以在使用过程中添加不同类型的数据,但因为需要进行强制类型转换时可能会出现类型转换异常。
为了避免这种情况,就不要把不同类型的元素加入到同一个集合类对象。但当程序过多或者相隔过长时间,
就会很容易忘记某集合类对象中元素类型,这时使用泛型就会很方便的知道元素类型,当输入类型不符合时会出现编译错误。
HashMap<String, Integer> map=new HashMap<>();
带有尖括号,里面定义有数据类型,上述例子表示,HashMap对象中元素的键必须是String类型,值必须是int整型,否则会报错,同时在创建集合类对象时不带泛型会出现警告。