java学习小笔记(一.容器)

积累~

一,容器
1. 在使用linkedList时,提供了实现移除顶部元素的几种方法,记住一点:使用getFirst()和element()时,当list为空时,将抛出noSuchElement Exception,可以用peek()方法替代,当类表为空时返回null,类似的还有poll(),offer()方法

2.stack(栈)是类,而且实现了list和继承了vector,他的规则是lifo,后进先出。  区分queue(队列),是fifo先进先出,他是一个接口。无需建立stack的事例,可以使用linkedList,里面包含了用作栈,队列,双向队列的方法(linkedList同时实现了set ,list,queue接口,超强大耶 )。vector,hashable,stack已经过时了,没必要再去使用它

3.hashSet是获取元素最快的集合,不过他是按照hash算法排序的,同样地,hashMap可以提供快速访问的键值对,treeMap的键按树是排序的故没有hashMap快,linkedHashMap是按插入循序排序的,集合了既快速访问又有序的优点

4.jdk1.5新增的priorityQueue ,元素可以按照优先级排序,除了自然排序,可以定义自己的comparator来排序

5.实现了map接口的如hashMap,treeMap,linkedHashMap不能直接使用foreach,因为他们都不是实现了iterable(可迭代)的,但jdk1.5提供了entrySet()方法,可把他们转变为一个set类型,具体是set<Map.entry<k,v>>,set是一个collection,可以进行迭代。另外,map向collection过度还有keyset()和values()方法,没有提供向数组转换的直接方法,只能先转为collection再调用toArray(collection<T>)进行转换

6.listIterator是Iterator的实现,他的扩展是能够使用previous向前索引,还有hasPrevious方法

7.java容器简单分类图
    



你可能感兴趣的:(java,exception,vector,list,HashMap,iterator)