Lession 6 集合框架
1.当向ArrayList添加一个对象的时,实际上就是将该对象防止到ArrayList底层所维护的数组当中,当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:
a) Entry{
Entry previous;
Object element;
Entry next;
}
其中Object类型的元素element就是我们向LinkedList中添加的元素,然后Entry又构造好了向前和向后的引用previous、next,最后将生成的这个Entry对象加入到链表中。换句话说,LinkedList中维护的是一个个Entry对象。
备注:LinkedList底层的数据结构其实是双向链表
2.当使用HashSet时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的hashCode值是否与新增加的对象的hashCode值一致;如果不一致的话,就直接加进去;如果一致,再进行equals方法的比较,equals方法如果赶回true,表示对象已经加入过了,就不会再增加新的对象,否则加进去。
3.良好的习惯就是如果我们重写了equals方法,那么最好也重写hashCode()方法,反之亦然
4.Map接口(key- value):Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。
5.只要有Tree修饰的集合都要自己实现它们对象的Comparable接口;比如TresSet、TreeMap
Tree表示含有排序的功能。
6.Map接口有几个子类比较特殊:Properties(专门配置属性文件的)
7.读取配置文件:
a) 普通java程序使用ClassLoader
b) Servlet程序可以使用ServletContext