java集合框架中分为两大类:装载数据的集合类和操作数据的工具类。

java集合类是基于Collection接口,再根据不同需求分类为Set、List和Map三大接口。

java集合就像一种容器,可以通过相应的方法将多个对象的引用放在容器中。容器中的元素(对象的引用)类型都为Object类型,所以可以通过向上转型存放任意类型的对象引用,但从容器中取出元素时必须向下转型(强制转型)为原来的类型。
值得注意的是集合类容器中的元素不存放基本数据类型,可存放包装类类型。


装载数据的集合类:集合类通过Collection接口定义了集合类共有的一些基本方法,这些方法分为基本操作(添加、删除、修改和查找容器元素)、批量操作(批量添加、删除容器元素)和数组操作(集合与数组之间相互转换)。


Set、List和Map接口
1、List接口:它继承于Collection接口,是一个允许存在重复元素的有序集合。List接口的实现类(具体类)常用的有ArrayList(顺序表集合)和LinkedList(链表集合)。
1>ArrayList(顺序表集合):ArrayList类扩展AbstractList并实现List接口。ArrayList类提供了一个随需要而增长的动态数组。在java中,标准数组是固定长度的,在数组创建之后,它们不能被加长或缩短,这也就意味着我们必须事先知道数组可以容纳多少元素。但是,直到运行时才能知道需要多大的数组。ArrayList类就是为了解决这个问题。
特点:对于使用索引查询元素效率较高,它可以使用索引快速定位元素位置,但删除或插入元素效率较低,因为使用了数组,需要移动后面的元素以调整索引的顺序。它的使用最广泛,可在集合元素增加或删除操作不频繁时使用,最适合做查询操作。

java泛型

由于集合中保存的元素都是Object类型,当一个元素从集合中取出来后都是Object类型的对象引用,所以我们必须对其进行向下强制转型,为了解决这种麻烦,JDK1.5中支持一项新特性--java泛型。


所谓泛型是指在定义(类的定义、方法的定义、形式参数的定义、成员变量的定义等)的时候,指定它为通用类型,也就是数据类型可以是任意的类型,具体调用的时候要将通用类型转换成指定的类型使用。
泛型是对java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

泛型的优点:java语言引入泛型的好处是安全简单。泛型的好处是在编译的时候检查类型安全,并且所有的向下强制转型都是自动和隐式的,提高了代码的重用率。

注意:在静态方法、静态初始化块、静态成员变量里面不允许使用泛型。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐