Java 集合框架
一、Collection
a) List(接口)
i. arraylist
ii. Linkedlist
b) Set(接口)
i. Hashset
ii. Treeset
iii. linkedhashset
c) Queue
i. Queue
ii. priorityqueue
二、Map
a) Hashmap
b) Treemap
c) Linkedhashmap
List(按照插入的顺序保存元素) |
List中最重要的两个类是linkedlist和arraylist àArraylist擅长于随机读取,但插入和删除较慢 àLinkedlist擅长于插入与删除,但随去读取方面较慢 |
重要方法: Add(E e) à添加对象,E为任意类型 Add(int index,E element) à在指定的下标插入元素 Addall(collection) à将一个collection内容添加到list中 Boolean contains(object o) à查看是否含有这个object对象 Boolean containsall(collecton c) à查看是否含有该容器中的所有内容 Get(int index) à获取index下标的元素值 Iterator() à得到一个迭代器对象 Remove(index)/(object) à移除index下标或者指明的object对象 Set(intdex,element) à将下标是index的内容梗概为element内容 Toarray() à转换为一个array数组对象 |
Arraylist(类à可以通过下标访问数据) |
重要方法: Get(index) à通过下标获取一个对象 Indexof(object) à找到该object对象的下标值 Lastindexof(object) à找到这个object最后一次出现的下标值 |
Linkedlist(类à通过foreach方法访问数据) |
Linkedlist是作为取代栈而新加了许多的功能,它通过双向链表实现 |
重要方法: Addfirst(E) à在list的开头添加元素 Addlast(E) à在list的末尾添加元素 Element() à获取linkedlist的头节点,但不删除该元素 Getfirst() à获取linkedlist的头节点 Getlast() à获取linkedlist的尾节点 Listiterator() à获取listiterator对象,这个迭代器是可以向左向右随意前进的 Offer(E) à在尾部添加一个e元素 Offerfirst(E) à在开头添加一个E元素 Peek() à返回头元素,但是不善处该元素 Peekfirst,peeklast à同上 Poll() à返回头元素并且将它删除 Pollfirst,polllast à返回元素并且将它删除 Push(E) à往linkedlist中添加元素 Pop() à将头节点扔掉,返回头节点的值 |
HashSet |
Hashset是基于hashmap实现的,底层是通过hashmap来保存所有元素的,因此hashset的实现比较简单,他的优点在于快速访问 |
重要方法 Boolean Add(E) à将元素添加到set集合中,如果插入的是先前有过的数据,将返回false |
Treeset |
Treest始终处于一个排序的位置上,所以没有hashset快,但因为采用了特殊的处理手段,所以处理速度还是很快的 |
Subset(E1,E2) à获取从E1到E2的一个距离 Add(E) à将E元素添加到set中 |
Linkedhashset |
保存了元素的插入顺序,它也具有较快的访问能力 |
Add(E) à将元素E添加到set集合中 |
Queue |
先进先出 |
Offer() à添加元素,与add的区别在于,当队列为空没创建出来的时候,offer返回false,add会报错,它属于queue接口 Add() à添加元素,属于list接口的内容 Peek() à取顶部的对象 Poll() à返回顶部的对象,并将对象删除掉 Remove() à删除元素 |
Proirityqueue |
基于优先级的一个队列,如果你没指定比较规则的话,那么默认的是值越小优先级越高,它是不允许nul值的 |
Add(E) Offer(E) Peek() Poll() Remove() |
Hashmap |
Hashmap用于快速访问 |
Pue(key,value) à插入键和值 Get(key) à获取对应键的值 Boolean Containskey(object) à判断是否含有这个键 Boolean containsvalue(object) à判断是否含有这个值 Entryset() 返回一个set集合,其中的值就是这个map对象set<map.entity<key,value>> |
Treemap |
Treemap中的每一个自愿赌都是一个map.iterator对象,是一个简单的map对象 |
Containskey(object) Containsvalue(object) Entryset() Get(key) à获取对应键的值 Keyset() à返回一个set集合,里面包裹了所有的key |
linkedhashmap |
Linkedhashmap是hashmap的一个子类,它保留了插入的顺序,一般当输入顺序与输出循序想同时,推荐使用这种方式,即使当你向上强转之后,打印仍旧是插入时的顺序 |
Get(object) à获得该键的值 |
访问集合框架的两种方式 |
一、通过迭代器iterator来获取,通过iterator.next返回的对象,进行强转就可以得到我们的所需要的对象 二、通过foreach语句来访问,但它只局限于使用在实现了collection接口的类 |
工具类 |
Arrays(类,但是它提供了一系列的静态方法) Arrays.aslistà它可以实现将一个数组、{a,b}集合封装成为一个list,但是这个list是不允许添加和删除的,如果你执意要那么做,那么将会报unsupportedoperation Collections(collections类导出的方法适合所有的集合) àComparator<String> r=Collections.reverseOrder()得到一个逆序的比较器 àcollections.sort(list,r)从而可以实现将一个list逆序 |