在java的学习和使用当中,总是会遇到各种各样的问题,这就要求我们对于java知识点的把握十分到位,并且可以熟练运用。今天就来为大家介绍在java中泛型集合算法以及其他集合的具体内容。一起来看看吧。
首先来看一下泛型集合算法,主要包括下面这些内容。
一、排序
对列表元素排序,代码如下所示:
static < T extends Comparable < ? super T >> void java.util.Collections.sort(List < T > elements, [new Comparator < T > () { public int compare(T o1, T o2) { return ... } }]) 对列表元素排序
二、查找
二分查找key,返回对象索引,代码如下所示:
static < T extends Comparable < ? super T >> int java.util.Collections.binarySearch(List < T > elements, T key) 二分查找key, 返回对象索引
三、其他
查找最小值/最大值,代码如下所示:
static < T > java.util.Collections.min(Collection < T > elements, Comparator < ? super T > c) static < T > java.util.Collections.max(Collection < T > elements, Comparator < ? super T > c)
然后再来看一下其他集合类
主要为大家介绍一些比较特别的集合类,Vector、Stack、HashTable、ConcurrentHashMap以及CopyOnWriteArrayList。
一、java.util.Vector
在使用的方法上,Vector与ArrayList基本一致,不同的地方在于Vector使用了关键字synchronized将访问和修改向量的方法都变成同步的了。因此对于不需要同步的应用程序来说,类ArrayList比类Vector更高效。
二、java.util.Stack
Stack,栈类,是Java2之前引入的,继承自类Vector。
三、java.util.HashTable
它和HashMap很类似,也是一个散列表,存储的内容是键值对映射,不同的地方在于,HashTable是继承自Dictionary的,HashTable中的函数都是同步的,这也意味着它的线程是安全的,除此之外,HashTable中key和value都能是null。
四、java.util.ConcurrentHashMap
ConcurrentHashMap是HashMap的线程安全版。和HashMap相比,ConcurrentHashMap不仅保证了访问的线程安全性,并且在效率上与HashTable相比,也更加高效。
五、java.util.CopyOnWriteArrayList
CopyOnWriteArrayList,是一个线程安全的List接口的实现,它使用ReentrantLock锁来保证在并发情况下提供高性能的并发读取。
六、java.util.CopyOnWriteArraySet
1.CopyOnWriteArraySet,是一个线程安全的set接口的实现,它使用ReentrantLock锁来保证在并发情况下提供高性能的并发读取。
2.ConcurrentLinkedQuerue是一个先进先出的队列。它是非阻塞队列。
3.ConcurrentSkipListMap可以在高效并发中替代SoredMap(比如用Collections.synchronzedMap包装的TreeMap)。
4.ConcurrentSkipListSet可以在高效并发中替代SoredSet(比如用Collections.synchronzedSet包装的TreeMap)。
以上就是关于在java中泛型集合算法以及其他集合的详细解析。如果你对java知识感兴趣,想要了解更多java基础以及常见问题,敬请关注奇Q工具网。
推荐阅读: