类集框架(集合)

集合(类集框架)

苟有恒,何必三更眠五更起;最无益,莫过一日曝十日寒。

1. Collection集合接口

一般不会直接使用此接口

Collection集合接口的方法
方法类型说明
public boolean add(E e)普通向集合保存数据
public boolean addAll(Collection<? extend E>c)普通追加一组数据
public void clear()普通清空集合,让根节点为空,同时执行GC处理
public boolean contains(Object o)普通查询数据是否存在,需要equals()方法支持
public boolean remove(Object o)普通数据删除,需要equals()方法支持
public int size()普通获取数据长度
public Object[] toArray()普通将集合变为对象数组返回
public Iterator iterator()普通将集合变为Iterator接口
public boolean isEmpty()普通判断集合是否为空

2. List

允许保存重复元素数据,是Collection集合接口的子接口,插入顺序排序

public interface List<E> extends Collection<E> {
}
List集合接口扩充的方法
方法类型说明
public E get(int index)普通取得指定索引位置上的数据
public E set(int index,E element)普通修改指定索引位置上的数据
public ListIterator listIterator()普通为ListIterator接口实例化
public static List of (E…elements)普通将数据转为List集合
public default void forEach(Consumer<? super T> action)普通使用forEach结合消费型接口输出
  • ArrayList 接口实现类

    实现了List接口,继承了AbstractList抽象类, 数组, 随机访问, 没有同步, 线程不安全,查

public class ArrayList<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,Serializable {
    
}
  • LinkedList 接口实现类

    实现了List接口,继承了AbstractSequentialList抽象类,链表结构, 插入删除, 没有同步, 线程不安全

public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>,Deque<E>,Cloneable,Serializable {
    
}
  • Vector 接口实现类

    实现了List接口,继承了AbstractList抽象类,数组,synchronized 同步, 线程安全,是早期集合,查询

public class Vector<E> extends AbstractList<E> implements List<E>,RandomAccess,Cloneable,Serializable {
    
}
  • Stack栈

栈是有序的数据结构,采用先进后出FILO存储模式,当栈中没有数据保存时,出栈操作会出现空栈异常(EmptyStackException)

public class Stack<E> extends Vectors<E>{
    
}
Stack栈扩充的方法
方法类型说明
public boolean empty()常量测试栈是否为空
public E peek()常量查看栈顶,但不删除
public E pop()常量出栈,同时删除
public E push(E item)普通入栈
public int search(Object o)普通在栈中查找

3. Set

不允许保存重复数据,使用hash()算法函数生成一个int类型hashCode散列值,然后和所存储的hashCode进行比较,不能根据索引获取元素(不确定)

public interface Set<E> extends Collections<E> {
    
}
  • HashSet

    使用hash表(数组)存储元素,元素无顺序,线程不安全

public class HashSet<E> extends AbstractSet<E> implements Set<E>,Cloneable,Serializable {
    
}
  • LinkedHashSet

    链表维护元素的插入次序,哈希表维护元素唯一性

  • TreeSet

    底层实现为二叉树,元素排好序,不允许放入null值

public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>,Cloneable,Serializable {
    
}

4. Map

接口 键值对的集合 (双列集合),不是继承Collection接口

Map集合接口的方法
方法类型说明
Object put(Object key,Object value)普通将指定key-value添加到(或修改)当前map对象中
void putAll(Map m)普通将m中的所有key-value对存放到当前map中
Object remove(Object key)普通移除指定key的key-value对,并返回value
void clear()普通清空当前map中的所有数据
Object get(Object key)普通数据删除,需要equals()方法支持
boolean containsKey(Object key)普通获取数据长度
boolean containsValue(Object value)普通将集合变为对象数组返回
int size()普通将集合变为Iterator接口
boolean isEmpty()普通判断集合是否为空
  • Hashtable 接口实现类

    同步, 线程安全

public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>,Cloneable,Serializable {
    
}
  • HashMap 接口实现类

    没有同步, 线程不安全

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>,Cloneable,Serializable {
    
}
  • LinkedHashMap

    双向链表和哈希表实现

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {
    
}
  • WeakHashMap

    强引用,GC回收弱引用

  • TreeMap

    红黑树对所有的key进行排序

public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>,Cloneable,Serializable {
    
}
  • IdentifyHashMap

5. Iterator

集合的输出四种方式:Iterator,ListIterator,Enumeration,foreach,Itertor是专门的迭代输出接口

Iterator接口常用的方法
方法类型说明
public boolean hasNext()普通判断是否有下一个值
public E next()普通取出当前元素
public default void remove()普通移除当前元素

6. Enumeration

Enumeration接口常用的方法
方法类型说明
public boolean hasMoreElements()普通判断是否有下一个元素
public E nextElement()普通取出当前元素

7. ListIterator

ListIterator接口常用的方法
方法类型说明
public boolean hasPrevious()普通判断是否有前一个元素
public E previous()普通取出前一个元素

8. Queue

队列是一种先进先出FIFO的线性数据结构

Queue接口常用的方法
方法类型说明
public boolean add(E e)普通向队列尾部添加数据,数据添加成功返回true,如果队列已满,则抛出一个IIIegaIStateEepeplian异常
public boolean offer(E e)普通添加一个元素并返回true,如果队列已满,则返回false
public E remove()普通移除并返回队列头部的元素,如果队列为空,则抛出一个NoSuchElementException
public E peek()普通返回队列头部的元素,如果队列为空,则返回null
public E poll()普通移除并返问队列头部的元素,如果队列为空,则返回null

9.总结

还有许多的类集框架没有写出来,欢迎大家总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值