黑马程序员 集合类 2 泛型
2015-07-12 22:17
253 查看
------- <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的父类型。下限
相关文章推荐
- 剑指offer《面试题6:重建二叉树》
- 黑马程序员
- 黑马程序员_JAVA之API(String类与StringBuffer类)
- 黑马程序员
- 黑马程序员
- 面试题7两个栈实现一个队列和两个队列实现一个栈
- 2014——我的求职(一个)
- java程序员必知的8大排序
- 第一次电话面试感想
- 程序员的生产力始于需求而非工具
- [黑马程序员]——java中的异常Exception
- [黑马程序员]——java枚举
- 正则表达式12
- 程序员在工作生涯中最易犯的七大错误
- 黑马程序员—IOS基础之OC—类的三大特性封装、继承、多态
- 史上最全的程序员求职渠道总结
- 【剑指offer 面试题38】数字在排序数组中出现的次数
- 概率题 面试 笔试
- iOS略屌的面试题
- 剑指offer《面试题5:从尾到头打印链表》