码迷,mamicode.com
首页 > 编程语言 > 详细

java集合学习笔记

时间:2018-01-26 14:02:37      阅读:107      评论:0      收藏:0      [点我收藏+]

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

  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集合学习笔记

标签:对象   ash   offer   学习笔记   boolean   png   space   重复   迭代   

原文地址:http://blog.51cto.com/13580976/2065410

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!