API && 其他实现类集合

67 篇文章 0 订阅
56 篇文章 0 订阅

其他实现类集合

特殊的集合类:

VectorStackHashTable
ConcurrentHashMapCopyOnWriteArrayList

Vector

java.util.Vector

理解:

Vector 是旧的List集合。 线程安全,效率低。
旧的集合体系,就是API命名上多少有些差异,使用上没差异。
被ArrayList取代。线程不安全,效率高。

用法上,Vector与ArrayList基本一致,不同之处在于Vector使用了关键字synchronized将访问和修改向量的方法都变成同步的了,所以对于不需要同步的应用程序来说,类ArrayList比类Vector更高效。

方法摘要:

void addElement(E obj)
将指定的组件添加到此向量的末尾,将其大小增加 1。
int capacity()
返回此向量的当前容量。
void copyInto(Object[] anArray)
将此向量的组件复制到指定的数组中。
E elementAt(int index)
返回指定索引处的组件。
Enumeration elements() 迭代
返回此向量的组件的枚举。
E firstElement()
返回此向量的第一个组件(位于索引 0) 处的项)。
void insertElementAt(E obj, int index)
将指定对象作为此向量中的组件插入到指定的 index 处。
E lastElement()
返回此向量的最后一个组件。
void removeAllElements()
从此向量中移除全部组件,并将其大小设置为零。
boolean removeElement(Object obj)
从此向量中移除变量的第一个(索引最小的)匹配项。
void removeElementAt(int index)
删除指定索引处的组件。
protected void removeRange(int fromIndex, int toIndex)
从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。
void setElementAt(E obj, int index)
将此向量指定 index 处的组件设置为指定的对象。

  Enumeration elements = v.elements();
  while(elements.hasMoreElements()){
      System.out.println(elements.nextElement());
  }

Stack

java.util.Stack

理解:

Stack,栈类,是Java2之前引入的,继承自类Vector。

HashTable

java.util.HashTable

理解:

HashTable和前面介绍的HashMap很类似,它也是一个散列表,存储的内容是键值对映射,不同之处在于,HashTable是继承自Dictionary的,HashTable中的函数都是同步的,这意味着它也是线程安全的,另外,HashTable中key和value都不可以为null。

ConcurrentHashMap

java.util.ConcurrentHashMap

理解:

ConcurrentHashMap是HashMap的线程安全版。同HashMap相比,ConcurrentHashMap不仅保证了访问的线程安全性,而且在效率上与HashTable相比,也有较大的提高。

CopyOnWriteArrayList

java.util.CopyOnWriteArrayList
理解:

CopyOnWriteArrayList,是一个线程安全的List接口的实现,它使用了ReentrantLock锁来保证在并发情况下提供高性能的并发读取。
ConcurrentLinkedQuerue是一个先进先出的队列。它是非阻塞队列。
ConcurrentSkipListMap可以在高效并发中替代SoredMap(例如用Collections.synchronzedMap包装的TreeMap)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值