java集合学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java集合学习笔记相关的知识,希望对你有一定的参考价值。

集合容器结构图:

技术分享图片

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的定义是不同的,使用时需注意。  

  1. ArrayList    适于随机访问,但插入和删除元素较慢

  2. 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()返回迭代器在列表中指向的当前位置的前一个元素的索引


以上是关于java集合学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Java集合源码学习笔记ArrayList分析

Java 集合学习笔记:HashMap

java学习笔记

Java学习笔记系列-基础篇-集合

Java 学习笔记 - 集合运算

Java 集合学习笔记:AbstractList