------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
1、set:无序,不可以重复元素
HashSet: 数据结构是哈希表,线程非同步
TreeSet: 可以对set集合中的元素进行排序(Ascall码顺序)
底层数据结构是二叉树
保证元素唯一性的依据
compareTo方法return 0
TreeSet排序的第一种方式:让元素自身具备比较性,元素需要实现comparable接口,覆盖
compareTo方法: 这种方式也称为元素的自然顺序,或者叫做默认顺序。
TreeSet排序的第2种方式:当元素本身不具备比较性时,或者具备的比较性不是说是需要的
,这是就需要让集合自身具备比较性
在集合初始化时,就有了比较方式。
当两者方式都存在时,以比较器为主。
(注):排序时,当主要条件相同时,一定判断次要条件
2、泛型:1.5版本出现的,为了解决安全,是一个安全机制。
好处:
1)将运行时期出现问题ClassCastException,转移到了编译时期。
方便与程序员解决问题。让运行事情问题减少,安全。
2)避免了强制转换麻烦。
格式:通过<>来定义操作的引用数据类型
在使用java提供的对象时,什么时候写泛型呢?
通常在集合框架中很常见
只有见到定义了<>就是泛型
其实<>就是用来接收类型的
当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可
泛型类定义的泛型,在整个类中有效。如果被方法使用,
那么泛型类的对象明确要操作的具体泛型类后,所以要操作的类型
为了让不同方法可以操作不同类型,而且类型还不确定。
那么可以将泛型定义为方法上。
特殊之处:
静态方法不可以访问类上定义的泛型,
如果静态方法操作的应用数据类型不确定,可以将方法定义在类型上。
public static <T> void show(T t){}
泛型定义在接口上。
interface Inter<T>{void show(T t);}
3、限定
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E;可以接受E类型或者E的子类型。上限
? super E;可以接受E类型或者E的父类型。下限
1、set:无序,不可以重复元素
HashSet: 数据结构是哈希表,线程非同步
TreeSet: 可以对set集合中的元素进行排序(Ascall码顺序)
底层数据结构是二叉树
保证元素唯一性的依据
compareTo方法return 0
TreeSet排序的第一种方式:让元素自身具备比较性,元素需要实现comparable接口,覆盖
compareTo方法: 这种方式也称为元素的自然顺序,或者叫做默认顺序。
TreeSet排序的第2种方式:当元素本身不具备比较性时,或者具备的比较性不是说是需要的
,这是就需要让集合自身具备比较性
在集合初始化时,就有了比较方式。
当两者方式都存在时,以比较器为主。
(注):排序时,当主要条件相同时,一定判断次要条件
2、泛型:1.5版本出现的,为了解决安全,是一个安全机制。
好处:
1)将运行时期出现问题ClassCastException,转移到了编译时期。
方便与程序员解决问题。让运行事情问题减少,安全。
2)避免了强制转换麻烦。
格式:通过<>来定义操作的引用数据类型
在使用java提供的对象时,什么时候写泛型呢?
通常在集合框架中很常见
只有见到定义了<>就是泛型
其实<>就是用来接收类型的
当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可
泛型类定义的泛型,在整个类中有效。如果被方法使用,
那么泛型类的对象明确要操作的具体泛型类后,所以要操作的类型
为了让不同方法可以操作不同类型,而且类型还不确定。
那么可以将泛型定义为方法上。
特殊之处:
静态方法不可以访问类上定义的泛型,
如果静态方法操作的应用数据类型不确定,可以将方法定义在类型上。
public static <T> void show(T t){}
泛型定义在接口上。
interface Inter<T>{void show(T t);}
3、限定
? 通配符。也可以理解为占位符。
泛型的限定;
? extends E;可以接受E类型或者E的子类型。上限
? super E;可以接受E类型或者E的父类型。下限