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
public int compare(Student a, Student b)
{
return a.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(T i) // 方法泛型 传什么类型过来就返回什么类型.T的类型由参数决定
{
Holder<T> h = new Holder<T>();
h.setValue(i);
return h;
}