集合框架:
1.定义:
1.集合:又称为容器,这个对象可以管理和维护其他对象
2.集合框架:包含所有集合的相关接口,实现类和算法类的一组API
2.集合框架中包含:接口,实现类,算法类
1.顶层接口:
1.Collection:直接存元素
1.List(ArrayList、LinkedList、Stack)2.Set(HashSet、SortedSet:TreeSet)
2.Map:元素成对出现
1.HashMap2.Hashtable3.TreeMap
2.算法类:提供大量静态方法对集合进行处理
1.collections:对集合(Collection、Map)进行处理2.Arrays:对数组进行处理
3.Collection中的常用方法:
1.add :增加一个元素
2.addAll :增加一个集合
3.remove :删除一个元素
4.removeAll :删除一个集合中所有的元素
5.contains :是否包含某个元素
6.containsAll :是否包含某个集合中的所有元素
7.clear :清除所有元素
8.isEmpty :是否为空的
9.size :获得长度
10.toArray :转成数组
11.iterator :获得一个迭代器
4.List接口:有序,可重复
1.说明:Collection接口最常用的子类
2.特点:有序,可重复
3.增加方法:
1.get :获得指定下标的元素2.set :设计某个位置的元素3.indexOf:获得元素在该集合的下标4.subList:获得子列表,含头不含尾
5.泛型:
1.说明:
JDK5以后的新特性,指的是数据类型的参数化
2.语法:
List<数据类型> list=new ArrayList<数据类型>(); 例:List<String> list=new ArrayList<String>();
3.解决的问题:
1.数据类型的安全性2.从集合中获得数据后的强制类型转换
6.Collections中常见方法:
1.addAll :将所有元素添加到集合中
2.reverse :翻转
3.shuffle :洗牌(乱序)
4.swap :交换List中两元素的位置
5.max :集合中最大的元素
6.min :集合中最小的元素
7.binarySearch:二分法查找,可以加比较器
8.frequency :元素在该集合中出现的次数
9.copy :将集合中的元素复制到另一个集合中
10.replaceAll :将集合中指定的元素全部替换为其他
11.disjoint :两个集合中没有相同元素返回true
12.sort :对List中的元素排序必须满足两个条件的一个
1.Comparable[实现了自然排序接口]2.Comparaor[单独再提供一个比较器])
7.Comparator:
1.说明:自定义一个比较规则
2.方法:int compare(T o1,T o2);
o1>o2 :正整数o1==o2 :0o1<o2 :负整数
3.优点:
1.如果元素没有实现Comparable,可以通过Comparator实现排序功能2.如果元素已经实现Comparable,可以通过Comparator实现新的排序规则3.如果同时提供了Comparable和Comparator,Comparator的优先级更高
8.Arrays中常用的方法:
1.asList:向集合中添加元素
2.toString:
3.sort:排序
4.fill:
5.binarySearch:
6.copyRange:
7.copyOf:
9.LinkedList:有序,可重复
1.说明:List接口的实现类,与 ArrayList(更适和查找)用法相同,
2.LinkedList是一个链表,jdk8的源码不是循环链表,只是双向链表
3.这个集合中有两个引用,first和last
4.特点:插入,删除 性能好,查询性能差
10.Stack(栈):
1.特点:先进后出,后进先出
2.三个重要的方法:
1.push:压栈2.pop:出栈3.peek:只取不删
3.例:入栈顺序是:abc,哪个不可能是出栈顺序?A、abc;B、cba;C、cab(正确答案);D、bca
11.Queue(队列):自学
1.队列 的接口
2.特点:先进先出
3.方法:add(从后加);remove(从前删)
12.其他:
1.size>>1:右移2,相当于除以2
2.this和super的两种用法:this.对象(调用当前对象),this();(在当前调用当前类的 另一个构造方法);super将当前换为父类