JAVA基础-集合类库(上)(List,Queue)

集合的概述

集合的由来

  • 当需要在Java程序中记录单个数据内容时, 则声明一个变量
  • 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组
  • 当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象
  • 当需要在Java程序中记录多个类型相同的对象数据时,则创建一个对象数组
  • 当需要在Java程序中记录多个类型不同的对象数据时,则准备一个集合

集合的框架结构

  • Java中集合框架顶层框架是java.util.Collection集合和java.util.Map集合
  • Collection集合中存取元素的基本单位是:单个元素
  • Map集合中存取元素的基本单位是:单对元素

Collection集合

基本概念

java.util.Collection接口是List接口,Queue接口以及Set接口的父接口.
因此, java.util.Collection接口里定义的方法既可用于操作List集合, 也可用于操作Queue集合和Set集合

常用方法

功能介绍 方法声明
向集合中添加对象 boolean add(E e)
用于将参数指定集合c中的所有元素添加到当前集合中 boolean addAll(Collection c)
判断是否包含指定对象 boolean contains(Object obj)
判断是否包含参数指定的所有对象 boolean containsAll(Collection c)
保留当前集合中存在且参数集合中存在的所有对象 boolean retainAll(Collection c)
从集合中删除对象 boolean remove(Object obj)
从集合中删除参数指定的所有对象 boolean removeAll(Collection c)
清空集合 void clear()
返回包含对象的个数 int size()
判断是否为空 boolean isEmpty()
判断是否相等 boolean equals(Object o)
获取当前集合的哈希玛值 int hashCode()
将集合转换为数组 Object[] toArray()
获取当前集合的迭代器 Iterator iterator()

Iterator接口

基本概念

  • java.util.Iterator接口主要用于描述迭代器对象, 可以遍历Collection集合中的所有元素
  • java.util.Collection接口继承Iterator接口,因此所有实现Collection接口的实现类都可以使用该迭代器对象

常用方法

功能介绍 方法声明
判断集合中是否有可以迭代/访问的元素 boolean hasNext()
用于取出一个元素并指向下一个元素 E next()
用于删除访问到的最后一个元素 void remove()

for each循环

基本概念

  • Java5推出了增强型for循环语句, 可以应用数组和集合的遍历
  • 是经典迭代的“简化版”

语法格式

for(元素类型 变量名:数组/集合名称){
    循环体
}

执行流程

不断地从数组/集合中取出一个元素赋值给变量名并执行循环体, 直到取完所有元素为止

List集合

基本概念

  • java.util.List集合是Collection集合的子集合,该集合允许有重复, 并且有先后放入次序
  • 该集合的主要实现类有:ArrayList, LinkedList, Stack, Vector

    • ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问, 增删元素不方便
    • LinkedList类的底层是采用双向链表进行数据管理的,访问不方便, 增删元素方便
    • 可以认为ArrayListLinkedList的方法在逻辑上完全一样, 只是在性能上有一定的差别: ArrayList更适合于访问, 而Linked更适合于插入和删除.在性能要求不是特别苛刻的情形下可以忽略这个差别
    • Stack类的底层是采用动态数组进行数据管理的.该类主要用于描述一种具有先进后出,后进先出特征的数据结构,叫就栈(last in first out. LIFO)
    • Vector类的底层是采用动态数组进行数据管理的.该类于ArrayList类相比, 属于线程安全类,效率比较低,以后开发基本不同

常用方法

功能介绍 方法声明
向集合中指定位置添加元素 void add(int index, E element)
向集合中添加所有元素 boolean addAll(int index,Collection)
从集合中获取指定位置元素 E get(int index)
查找参数指定的对象 int indexOf(Object o)
反向查找参数指定的对象 int lastIndexOf(Object o)
修改指定位置的元素 E set(int index, E element)
删除指定位置的元素 E remove(int index)
用于获取子List List subList(int fromindex, int toindex)

Queue集合

基本概念

  • java.util.Queue集合是Collection集合的子集合,也List集合属于平级关系
  • 该集合主要用于描述具有先进先出特征的数据结构,叫做队列(firts in first out FIFO)
  • 该集合的主要实现类是LinkedList类,因为该类在增删方面比较有优势

常用方法

功能介绍 方法声明
将一个对象添加至队尾,若添加成功则返回true boolean offer(E e)
从队首删除并返回一个元素 E poll()
返回队首的元素(但不删除) E peek()

你可能感兴趣的:(java)