Java 回顾笔记_集合框架-泛型高级应用

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 。


而且通常这些常用的集合容器都是不同步的。 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值