Java集合体系学习
-
Java集合和数组类似,都是存放一组相等类型数据的容器。只不过集合和数组的区别在于两点
- 1、数组长度一旦固定,不可更改。集合存放数据理论上没有上限,没有固定的长度
- 2、数组存放的数据可以是基本数据类型,也可以是引用数据。但是集合只能存放引用数据类型。
-
泛型(JDK5.0后的新特性)
- 弥补或者说用来对向下转型需要进行类型检测的一个解决方法
- 泛型有两种
- 一种是类上的泛型
- 比较强大,声明在类上面,这样的话在类的任何一个组成中都可以使用这个泛型
- 类上的泛型的使用有两种情况
- 子类继承父类的时候可以声明泛型的类型,一旦声明之后,那么父类中所有用到泛型的地方,全部编程你声明的类型
class A extends B{
}
class B{
public void test(T t){
}
}
- 子类继承父类的时候可以声明泛型的类型,一旦声明之后,那么父类中所有用到泛型的地方,全部编程你声明的类型
- 当前类创建对象的时候也可以指定泛型的类型
B b = new B<>();
注意:泛型在使用的时候没有指定泛型的类型,泛型默认是Object类型
- 一种是方法上的泛型
- 比较弱鸡,只能对当前方法生效
- 一种是类上的泛型
- 泛型可以理解为一种不确定的引用数据类型,只有在真正调用的时候,你可以给我说明一下你是什么类型,这样的话在任何一个使用泛型的地方,都会变成你说的哪个类型
- 泛型的高级使用
- 1、一类中可不可以有多个泛型?泛型之前使用,分割
- 2、类中声明泛型的时候,可以泛型的父类,用于限制泛型的范围取值<T extends 某一个类> 限制类的上限 <? extends 父类>—常见
上线最好使用T的方式 - 3、类中声明泛型的时候,可以指定泛型的子类,声明下限 <? super 子类>----不常见
1 2 都可以使用在类上泛型上
-
集合体系
- 集合中存放的数据全部是使用泛型来操作的。
- 集合按照存放的数据类型分为两大集合体系
- Collection(接口)集合体系–单列集合
(1,2,3,4,5,6)
- List(接口)集合体系可以存放重复的数据
- ArrayList集合实现类
- Vector
- LinkedList
- Set(接口)集合体系无法存放重复的数据
- HashSet
- LinkedHashSet
- TreeSet
- Map(接口)集合体系 双列集合((1,2),(1,2))
- HashMap
- HashTable
- Properties
- LinkedHashMap
- TreeMap
- Collection(接口)集合体系–单列集合