Java 回顾笔记_集合框架-泛型高级应用
2016-03-29 11:07
429 查看
System.out.print(obj ) :这个方法实际上是调用了 object 的toString()方法。
所以我们只要重写toString 方法就可以 实现不同的输出.
集合框架-泛型-泛型限定(上限):
泛型的通配符:?
其实它和这种方法差不多:
区别在于 :
第一种方式不能对 你的类型进行操作,
而第二种方式,可以返回T 然后你 其他的类就可以对类型进行操作。
相同点在于:
他们都是传递 不明确 类型。
如果你不需要对类型进行操作,就用第二种
一般情况下左右两边泛型要一致:
泛型的限定:
? extends E: 接收E类型或者E的子类型对象。上限
一般存储对象的时候用。比如 添加元素 addAll.
_________________________________
集合框架-泛型-泛型限定(下限):
? super E: 接收E类型或者E的父类型对象。 下限。
一般取出对象的时候用。比如比较器。
——————————————————————
集合框架-泛型-泛型限定(通配符的体现):
基本体现在 依赖于equals 来实现的功能的方法
比如containAll removeAll retainAll
因为equals 是每个对象都有的方法。所以可以使用?来接收 所有的对象。
——————————
集合的一些技巧:
需要唯一吗?
需要:Set
需要制定顺序:
需要: TreeSet
不需要:HashSet
但是想要一个和存储一致的顺序(有序):LinkedHashSet
不需要:List
需要频繁增删吗?
需要:LinkedList
不需要:ArrayList
如何记录每一个容器的结构和所属体系呢?
看名字!
List
|--ArrayList
|--LinkedList
Set
|--HashSet
|--TreeSet
后缀名就是该集合所属的体系。
前缀名就是该集合的数据结构。
看到array:就要想到数组,就要想到查询快,有角标.
看到link:就要想到链表,就要想到增删快,就要想要 add get remove+frist last的方法
看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法。
看到tree:就要想到二叉树,就要想要排序,就要想到两个接口Comparable,Comparator 。
而且通常这些常用的集合容器都是不同步的。
所以我们只要重写toString 方法就可以 实现不同的输出.
集合框架-泛型-泛型限定(上限):
泛型的通配符:?
其实它和这种方法差不多:
区别在于 :
第一种方式不能对 你的类型进行操作,
而第二种方式,可以返回T 然后你 其他的类就可以对类型进行操作。
相同点在于:
他们都是传递 不明确 类型。
如果你不需要对类型进行操作,就用第二种
一般情况下左右两边泛型要一致:
泛型的限定:
? extends E: 接收E类型或者E的子类型对象。上限
一般存储对象的时候用。比如 添加元素 addAll.
_________________________________
集合框架-泛型-泛型限定(下限):
? super E: 接收E类型或者E的父类型对象。 下限。
一般取出对象的时候用。比如比较器。
——————————————————————
集合框架-泛型-泛型限定(通配符的体现):
基本体现在 依赖于equals 来实现的功能的方法
比如containAll removeAll retainAll
因为equals 是每个对象都有的方法。所以可以使用?来接收 所有的对象。
——————————
集合的一些技巧:
需要唯一吗?
需要:Set
需要制定顺序:
需要: TreeSet
不需要:HashSet
但是想要一个和存储一致的顺序(有序):LinkedHashSet
不需要:List
需要频繁增删吗?
需要:LinkedList
不需要:ArrayList
如何记录每一个容器的结构和所属体系呢?
看名字!
List
|--ArrayList
|--LinkedList
Set
|--HashSet
|--TreeSet
后缀名就是该集合所属的体系。
前缀名就是该集合的数据结构。
看到array:就要想到数组,就要想到查询快,有角标.
看到link:就要想到链表,就要想到增删快,就要想要 add get remove+frist last的方法
看到hash:就要想到哈希表,就要想到唯一性,就要想到元素需要覆盖hashcode方法和equals方法。
看到tree:就要想到二叉树,就要想要排序,就要想到两个接口Comparable,Comparator 。
而且通常这些常用的集合容器都是不同步的。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树