JAVA学习笔记04
2016-03-23 21:58
267 查看
day11起,day12,day13
eclipse快捷键:
查找类:ctrl+shift +t
查找方法:ctrl + o
StringBuffer是一个线程安全的可变字符序列。
.代表任意字符
\d代表数字字符,[0-9]
\w 代表单词字符,[a-zA-Z_0-9]
List:有序(存和取的顺序一致),有索引,可以存储重复的元素;
ArrayList、LinkedList、Vector
Set:无序(存和取的顺序不一致),无索引,不可以存储重复的元素;
HashSet、TreeSet
集合有2种数据结构:
数组:查询块,修改也快,增删慢;
链表:查询慢,修改也慢,增删快。
List下三个子类的特点:
ArrayList:底层数据结构是数组,线程不安全,效率高;
LinkedList:底层数据结构是链表,线程不安全,效率高;
Vector:底层数据结构是数组,线程安全,效率低。
List下3个子类的使用原则:查询多用ArrayList,增删多用LinkedList,如果都多,用ArrayList。
集合框架栈和队列数据结构特点:栈是先进后出,队列结构是先进先出。
增强for循环结构:
增强for循环不能删除元素
TreeSet可以对元素对象进行排序,同时也可以保证元素对象唯一。
TreeSet中比较器排序(Comparator接口)特点总结:当TreeSet添加元素的时候,会自动调用Comparator接口中的Compare()方法排序,调用的对象是Compare方法的第一个参数,集合中的对象是Compare方法的第二个参数。
Collections
List(存取有序,有索引,可以重复)
ArrayList:底层是数组实现的,线程不安全,查找和修改快,增删慢;
LinkedList:底层是链表实现的,线程不安全,增删快,查找和修改慢;
如果查找和修改多,用ArrayList;
如果增和删多,用LinkedList;
如果都多,用ArrayList;
Vector:底层是数组实现的,线程安全,增删和查改都慢;
Set(存取无序,无索引,不可以存储重复元素)
HashSet:底层是Hash算法实现的;
LinkedHashSet:底层是链表实现的,但是也可以保证元素唯一,和HashSet一样;
TreeSet:底层是二叉树算法实现的;
一般在开发的时候,是不需要对元素进行排序的,所以在开发的时候大多用HashSet,HashSet的效率比较高;
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的效率比较高;
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树