java中泛型集合算法以及其他集合,详细解析

BSO 2020-09-14 09:50:02 java常见问答 5004

在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工具网。

推荐阅读:

java泛型,泛型的高级用法详解

java泛型,泛型方法详解

java泛型,泛型类详解