泛型
引出泛型的原因
java语言有两种数据类型:值类型(原始类型)和引用类型。每个值类型都提供了一个封装类,值类型byte\short\long\int\float\double\char和boolean对应的封装类分别是Byte\Short\Long\Integer\Float\Double\Character\Boolean。
引出泛型的原因:一是由于类型和类型之间的定义不同,导致不可以互相转换。二是父类的引用虽然可以指向子类的对象,但是子类无法直接接受父类的对象。
集合
集合也称为容器,是java中提供的另外一种数据结构,用来把具有相同性质的一类事物汇聚成一个整体。
常见的集合有List集合、Set集合、Map集合。
所有的集合都实现了java.util包下的Collection接口,而且各接口都提供了相关的实现类。
- List集合
List类以特定的次序存储对象元素,能够自动扩充容量,维护元素的次序,而且List中的元素允许重复,使用此接口类可以对列表中每个元素的插入位置进行精确控制,还可以根据元素的整数索引访问元素,并搜索列表中的元素。
List集合常用的具体实现类包括ArrayList 类和LinkList类。java.util.ArayList类实现了java.util.List接口类,ArayList类也可以根据索引快速访问元素。
- Set 集合
Set集合和List集合都是动态数组,与List集合不同的是在Set集合中存储的对象元素不能重复,Set集合使用自己的排序规则。
Set集合常见的实现类包括HashSet 和 TreeSet类。HashSet 能快速定位一个元素,但是存储在HashSet中的元素需要实现hashCode方法。TreeSet则将放入其中的元素按序存储,这要求放入其中的对象必须是可排序的。
- Map集合
Map集合提供了一个更通用的元素存储方法,其继承了List 和Set的优势,是一种键值型集合。
HashMap类是基于哈希表的Map接口实现的,本类允许使用null值和null键。HashMap最大的特点是通过hashcode()方法对其内容进行快速查找。HashMap和ArrayList相似,通过get()来获取value,通过set()来插入value