day16集合

来源:互联网 发布:阴茎粗大的感受 知乎 编辑:程序博客网 时间:2024/05/22 06:25

1,ArrayList list=new ArrayLIst(50)//指定内部数组的长度...默认长度是10


2,ArrayLIst 查询数据快,添加删除可能效率不高,内部数组可能会复制原始数据加长时不高.


3,HashMap 的键要同时重写hashCode 和equals  . 先使用hashCode计算下标index 如果equals不相等.这用链表的形式

连在同一个index 位置. 只有在equals相等时value值覆盖....否则是链表在同一个位置.


4,如果负载率超过75%内部容量翻倍.(内部数组使用率75%)


5,TreeMap ,的内部存储是以二叉树结构存放数据,key值必须要能比较大小才能放入.自定义类型要放入treeMap中作为Key存放数据必须实现Comparable接口实现抽象方法a.compareTo(b) 相等=0  a>b正数a<b负数.

*  

6,也可以在 treemap创建的时候在参数中传入一个比较实例 ... 当参数中有比较器时TreeMap会不执行Student类的比较实现....


TreeMap<Student, Integer> map = new TreeMap<Student, Integer>(new Comparator<Student>() {


@Override

publicint compare(Student a, Student b)

{

returna.age-b.age;

}

});


7,泛型是一种编译期语法,程序运行时不存在泛型信息.

String s =h.getValue()//被编译成为String s =(String)h.getValue()


8,<T>泛型如果不被指定类型.那么是raw type .默认是object类型.


9,泛型<T>不直接支持多态...  Object 和Number都不行...


`应该写成如下:

private static void f3(Holder<? extends Number> h1)//某种特定的类型而且还必须是Number的子类型.

{


}


10,  ?是某种未知的特定的类型


11,

private static <T> Holder<T> f4(Ti)   // 方法泛型 传什么类型过来就返回什么类型.T的类型由参数决定

{

Holder<T> h = new Holder<T>();

h.setValue(i);


returnh;

}




0 0
原创粉丝点击