- day11起,day12,day13
- eclipse快捷键:
- 查找类:ctrl+shift +t
- 查找方法:ctrl + o
- StringBuffer是一个线程安全的可变字符序列。
day14
- 预定义字符类
- .代表任意字符
- \d代表数字字符,[0-9]
- \w 代表单词字符,[a-zA-Z_0-9]
day15
- Collection 单列集合的根接口
- List:有序(存和取的顺序一致),有索引,可以存储重复的元素;
- ArrayList、LinkedList、Vector
Set:无序(存和取的顺序不一致),无索引,不可以存储重复的元素;
- HashSet、TreeSet
集合有2种数据结构:
- 数组:查询块,修改也快,增删慢;
- 链表:查询慢,修改也慢,增删快。
- List下三个子类的特点:
- ArrayList:底层数据结构是数组,线程不安全,效率高;
- LinkedList:底层数据结构是链表,线程不安全,效率高;
- Vector:底层数据结构是数组,线程安全,效率低。
- List下3个子类的使用原则:查询多用ArrayList,增删多用LinkedList,如果都多,用ArrayList。
day16
- ArrayList中contains和remove方法底层都是依赖equals方法,所以使用前一般要重写equals方法。
- 集合框架栈和队列数据结构特点:栈是先进后出,队列结构是先进先出。
- 增强for循环结构:
for(元素数据类型 变量 :数组或collection集合) {
代码;
}
增强for循环不能删除元素
day17
- LinkedHashSet底层是链表实现的,是Set集合中唯一能保证有序存取的的集合对象。又因为LinkedHashSet是HashSet的子类,所以也是保证元素唯一的,与HashSet的原理一样。
- TreeSet可以对元素对象进行排序,同时也可以保证元素对象唯一。
- TreeSet中比较器排序(Comparator接口)特点总结:当TreeSet添加元素的时候,会自动调用Comparator接口中的Compare()方法排序,调用的对象是Compare方法的第一个参数,集合中的对象是Compare方法的第二个参数。
day18
- LinkedHashMap底层是链表实现,可以保证怎么存就怎么取。
- Collections
- List(存取有序,有索引,可以重复)
- ArrayList:底层是数组实现的,线程不安全,查找和修改快,增删慢;
- LinkedList:底层是链表实现的,线程不安全,增删快,查找和修改慢;
- 如果查找和修改多,用ArrayList;
- 如果增和删多,用LinkedList;
- 如果都多,用ArrayList;
- Vector:底层是数组实现的,线程安全,增删和查改都慢;
- Set(存取无序,无索引,不可以存储重复元素)
- HashSet:底层是Hash算法实现的;
- LinkedHashSet:底层是链表实现的,但是也可以保证元素唯一,和HashSet一样;
- TreeSet:底层是二叉树算法实现的;
- 一般在开发的时候,是不需要对元素进行排序的,所以在开发的时候大多用HashSet,HashSet的效率比较高;
- HashSet:底层是Hash算法实现的;
- List(存取有序,有索引,可以重复)