2015日记补充

------- android培训java培训、期待与您交流! ----------

一、TreeSet TreeSet:可以对集合进行排序(按照自然顺序排序)

 需求:往TreeSet集合中存储自定义对象学生。 想按照学生的年龄进行排序。 注意:当主要条件一致时,一定要判断次要条件。
 |--TreeSet:底层数据结构是二叉树模型 
 保证元素唯一性的方法: CompareTo方法return整数 
 TreeSet的第一种排序方法:让元素自身具备比较性,元素需要实现Comparable接口,覆盖compare方法。 这种方式也称为元素的自然顺序,元素自身具备比较性。 
 第二种排序方式:当元素自身不具备比较性或者这种比较性不是我们所需要的时候。这时需让元素自身具备比较性。在集合初始化时,这时需要让元素自身具备比较性。
 定义了比较器,将比较器作为对象传递TreeSet集合的构造函数。 class myComparator implements Comparator(比较器) 当两种排序都存在时,以比较器为主。
 定义一个类,实现Comparator接口,覆盖compare方法。
 二、泛型:用于解决安全问题 JDK1.5版本以后出现泛型。
 好处: 
1 将运行出现的问题classCastException,转移到了编译时期,方便于程序员解决问题,让运行时期问题减少,安全。。。
 2避免了强制转换的麻烦。 
泛型的格式:通过<>来定义要操作的引用数据类型。 
通常在集合框架中很常见,只要见到<>就要定义泛型。 
其实<>是用来接收类型的。 当使用集合时,将集合中要存储的数据类型传递到<>集合中即可。
 //泛型类 
class utils
{
private QQ q;
  public void setObject(QQ q)
{
this.q=q;
}
public QQ getObject()
{
teturn q;
}
 }  
什么时候定义泛型类:当类中要操作的引用数据类型不确定的时候。
早期定义Object来完成扩展。
现在定义泛型来完成扩展。
//泛型集定义的泛型,在整个类中有效,如被方法使用。
//那么泛型类的对象明确要操作的具体类型后,所有的操作类型就已经固定了。
//为了让不同的方法可以操作不同的类型,而且类型还不确定。
//那么可以将泛型定义在方法上。
class Demo
{
public <T> void show(){}
}
Demo d=new Demo();
d.show("haha");
d.show(new Integer(4));
特殊之处:静态方法不可以访问类上定义的泛型。如果静态方法操作的应用数据类型不确定,可以将泛型定义在方法上。
泛型定义在接口上:
interface inter<T>
{
void show(T,t)
}
ArrayList<?extends person>泛型限定
?通配符:占位符
? extends E:可以接受E类型或者E的字类型。上限。
? supper E:可以接受E类型以及E的父类型:下限
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值