集合
1. 集合API的类图结构
:
2. Collection接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式.
3. Set接口是Collection的子接口,Set接口的容器类中的元素是么有顺序的,而且不可以重复.其可以与数学中的”集合”概念相对应.
4.Set容器类有HashSet,TreeSet.
TreeSet的特点:其运行的结果已经按照字母顺序排序.因为其的有序性,在进行查找时使用二分法进行高效的查找.
5. List接口是Collection的子接口,List接口的容器类中的元素是有顺序的,而且可以重复.List中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素.
List接口类有ArraryList,LinkedList, Vector等.
ArraryList:底层是数组结构,所以查询快,修改,删除,插入慢.
LinkedList:底层是双向离岸边结构,查询慢,修改,删除,插入块.
Vector: 底层是数组结构,区别是:线程安全,效率底.
6. List的方法有:
Object get(int index);
Object set(int index, Object element); //返回旧的元素
void add(int index, Object element);
Object remove(int index);
int indexOf(Object o);
int lastIndexOf(Object o);
7. List 常用的算法:
Collections.sort(List) 对list内的元素排序
Collections.shuffle(list) 对list容器内的对象进行随机排列
Collections.reverse(list) 对list容器内的对象进行逆序排列
vCollections.fill(list,Object) 用一个特定的对象重写整个list容器.
Collections.copy(list dest,listsrc) 将src list容器内容拷贝到destlist,
Int i = Collections.binarySearch(list , object)对于顺序的list容器,采用二分法查找特定的对象.(Integer 不能 , String 可以)
8. Map接口:实现Map接口的类用来存储键(Key)—值(Value)对,
键(Key)—值(Value)构成一组Entry.
Map接口的实现类有HashMap和TreeMap,Hashtable等等.
Hashtable为线程安全.
Map类中存储的键(Key)—值(Value)对通过键来标识,所以键值不能重复.
Map的三种遍历:Map.Entry<> entrySet( ){ };
9. 打包:自动将基础类型转换为对象.
解包:自动将对象转换为基础类型.
10. 数组算法Arrays
Java.unti.Arrays
Arrays.toString 将数组转换成字符串输出
Arrays.sort 数组排序
Arrays.hashCode 得到数组的hashCode
Arrays.fill 数组元素填充
11. Iterator接口:所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象.
Iterator对象成为迭代器,用以方便简单的把容器类的元素的遍历操作.
Iterator.hasNext()//判断游标右边是否有元素
Iterator. Next() //返回游标右边的元素并将游标移动到下一个位置.
12.Comparable接口:所有的可以”排序”的类都实现了Java.lang.Comparable接口.Comparable接口只有一个办法,
public int compareTo(Object obj):该方法:
返回 0 表示:this ==obj;
返回整数表示this>obj;
返回负数表示 this< obj
实现了Comparable接口的类通过实现ComparaTo方法从而确定该类对象的排序方式.
13. Hashcode 是一种编码方式.每个对象都会有一个hashcode,它实现了一种无顺序的元素排列.
两个对象值相同(x.equals(y)== true),则一个有相同的hashcode,相反:hashcode相同 ,对象未必相等.