标签:对象 ash offer 学习笔记 boolean png space 重复 迭代
集合容器结构图:java容器类类库的用途是保存对象,分为两个概念,collection和map。collection保存单一的元素,而map保存相关联的键值对。
collection 中基本方法:
int size():获取集合的元素个数
boolean add(E e):向集合中添加元素
boolean remove(Object o):删除给定的元素
boolean isEmpty():判断集合是否不含有元素
void clear():清除集合中所有元素
boolean contains(Object o):集合中是否含有给定元素
boolean addAll(Collection c):将给定集合中的所有元素添加到当前集合
boolean removeAll(Collection c)删除当前集合中与给定集合相同的元素
List list接口在collection的基础上添加了大量的方法,使得可以在list的中间插入和移除元素。
boolean add(int index, E element)
boolean addAll(index, collection)
boolean remove(int index)
set(int index, E element)
get( int index)
subList(int fromIndex, int toIndex)
indexof()
lastIndexof()
listIterator()
当使用contains,indexof,remove时,都会用到equals()方法,对于不同的类,equals的定义是不同的,使用时需注意。
ArrayList 适于随机访问,但插入和删除元素较慢
LinkedList 低价的插入和删除,提供了优化的顺序访问,但在随机访问方面较慢。
除了实现基本的list接口外,还添加了可以使其用作栈,队列,或双端队列的方法,这些方法有的只是名字有差别,有的差别不大,只是为了在特定上下文中更适用。如Queue接口窄化了对LinkedList的方法的访问权限,在方法中的参数类型如果是Queue时,就只能访问Queue接口所定义的方法,而不能直接访问 LinkedList的非Queue的方法。
getFirst()
element()
peek()
都是返回列表的第一个元素,当列表为空时,getFirst和element抛出异常,而peek返回null。
remove()
removeFirst()
poll()
移除并返回列表的头,当列表为空时,getFirst和element抛出异常,而peek返回null。
addFirst()
add()
addLast()
offer()
将元素插入到列表的尾端
removeLast()
移除并返回列表最后一个元素
stack 栈:可以直接将LinkedList当做栈使用,而不是使用已经过时的stack
LinkedList<T> stack = new LinkedList<T>()
Queue 队列:LinkedList实现了Queue接口,所以通过LinkedList向上转型为Queue实现
Queue<T> queue = new LinkedList<T>()
set 不保存重复的元素,与collection是完全一样的接口。
treeset将元素存储在红黑树结构中
hashset使用的是散列函数
Map
put()
get()
keySet()返回它的键的set
values()返回它的值的collection
entrySet()返回它的键值对的set
Iterator 迭代器
迭代器的作用是遍历并选择序列中的对象,而客户端程序员不必知道该序列的底层结构。
collections.iterator()得到一个迭代器
iterator.hasNext()
iterator.next()
iterator.remove()在调用此方法之前必须先调用next方法,表示移除最后一个元素。
ListIterator 是Iterator的一个子类,只能用于List类的访问,可以双向移动。
list.listIterator()得到一个迭代器
iterator.hasNext()
iterator.next()
iterator.hasPrevious()
iterator.previous()
iterator.remove()
iterator.set()替换访问过的最后一个元素
iterator.nextIndex()返回迭代器在列表中指向的当前位置的后一个元素的索引
iterator.previous()返回迭代器在列表中指向的当前位置的前一个元素的索引
标签:对象 ash offer 学习笔记 boolean png space 重复 迭代
原文地址:http://blog.51cto.com/13580976/2065410