精华内容
下载资源
问答
  • 关于java中有关集合的知识点,相信大家还是有所了解集合中所包含知识点是非常丰富,而且可以细分为很多类型。今天就来为大家介绍一下并发集合的有关知识,并且用实际代码为大家展示,一起来看看吧。首先我们...

    关于java中有关集合的知识点,相信大家还是有所了解的。集合中所包含的知识点是非常丰富的,而且可以细分为很多类型。今天就来为大家介绍一下并发集合的有关知识,并且用实际代码为大家展示,一起来看看吧。

    首先我们需要知道的是,并发集合是jdk5.0重要的特性,增加了并发包java.util.concurrent.*。Java内存模型、volatile变量及AbstractQueuedSynchronizer(简称AQS同步器),是并发包众多实现的基础。

    常见的并发集合:

    1.ConcurrentHashMap:线程安全的hashmap的实现

    2.CopyOnWriteArrayList:线程安全且在读操作时无锁的ArrayList

    3.CopyOnWriteArraySet:基于CopyOnWriteArrayList,不添加重复元素

    4.ArrayBlockingQueue:基于数组、先进先出、线程安全,可实现指定时间的阻塞读写,并且容量可以限制

    5.LinkedBlockingQueue:基于链表实现,读写各用一把锁,在高并发读写操作都多的情况下,性能优于ArrayBlockingQueue

    另外说一下,CopyOnWrite集合即写时复制的集合

    通俗的理解是当我们往一个集合添加元素的时候,不直接往当前集合添加,而是先将当前集合进行Copy,复制出一个新的集合,然后新的集合里添加元素,添加完元素之后,再将原集合的引用指向新的集合。

    这样做的好处是我们可以对CopyOnWrite集合进行并发的读,而不需要加锁,因为当前集合不会添加任何元素。所以CopyOnWrite集合也是一种读写分离的思想,读和写不同的集合。

    实例代码展示如下:package com.ifeve.book;

    import java.util.Map;

    import com.ifeve.book.forkjoin.CopyOnWriteMap;

    /**

    * 黑名单服务

    *

    * @author fangtengfei

    *

    */

    public class BlackListServiceImpl

    {

    private static CopyOnWriteMap  blackListMap = new CopyOnWriteMap  (

    1000);

    public static boolean isBlackList(String id)

    {

    return blackListMap.get(id) == null ? false : true;

    }

    public static void addBlackList(String id)

    {

    blackListMap.put(id, Boolean.TRUE);

    }

    /**

    * 批量添加黑名单

    *

    * @param ids

    */

    public static void addBlackList(Map  ids)

    {

    blackListMap.putAll(ids);

    }

    }

    另外需要注意的是:

    1.减少扩容开销。根据实际需要,初始化CopyOnWriteMap的大小,避免写时CopyOnWriteMap扩容的开销。

    2.使用批量添加。因为每次添加,容器每次都会进行复制,所以减少添加次数,可以减少容器的复制次数。如使用上面代码里的addBlackList方法。

    关于并发集合的相关知识你都了解了吗?具体的代码已经为大家展示出来了。如果你对java知识感兴趣,想要了解更多java基础知识,敬请关注奇Q工具网。

    推荐阅读:

    展开全文
  • Java常见集合有哪些

    千次阅读 2018-10-25 23:17:14
    说说常见的集合有哪些吧? 答: Map接口和Collection接口是所有集合框架的父接口 Collection接口的子接口包括:Set接口和List接口。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按...

    常见的集合有哪些?

    答:
    Map接口和Collection接口是所有集合框架的父接口

    1. Collection接口的子接口包括:Set接口和List接口。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。
    2. Map接口的实现类主要有:HashMap、Hashtable、ConcurrentHashMap以及TreeMap等。Map不能包含重复的key,但是可以包含相同的value。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。
    3. Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等
    4. List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等
    5. Iterator,所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含以下三种方法:
      hasNext()是否还有下一个元素
      next()返回下一个元素
      remove()删除当前元素

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 题目分析:作者正在学习中… 【答案】 答:集合可以从接口上分类: Map(图)接口和Collection(收集...Map接口实现类主要:HashMap、TreeMap、Hashtable、LinkedHashMap、ConcurrentHashMap以及Properties等 Set...

    题目分析:作者正在学习中…

    【答案】

    集合可以从接口上分类:

    在这里插入图片描述
    Map(图)接口和Collection(收集)接口是所有集合框架的父接口,Collection接口的子接口包括:Set(一组)接口和List(目录)接口
    Map接口的实现类主要有:HashMap、TreeMap、Hashtable、LinkedHashMap、ConcurrentHashMap以及Properties等
    Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等
    List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等

    Java中的三大集合即为:HashMap,Hashtable和ConcurrentHashMap

    【题目拓展】

    展开全文
  • 1、一、collection (有序)接口实现接口 set list其中set接口实现类是HashSet,List接口实现类是ArrayList、LinkList、Vector二、Map(无序)接口实现类是HashMap、HashTableArrayList和Vector都是使用数组...

    1、

    一、collection (有序)接口的实现的接口 set  list

    其中set接口的实现类是HashSet,List接口的实现类是ArrayList、LinkList、Vector

    二、Map(无序)接口的实现类是HashMap、HashTable

    ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

    2、Collection 和 Collections的区别。

    Collection是集合类的上级接口,继承与他的接口主要有Set 和List.  Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

    3、HashMap和Hashtable的区别。

    HashMap是Hashtable的轻量级实现(非线程安全 的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。  HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。  最大的不同是,Hashtable的方法是Synchronize 的,而HashMap不是,在多个线程访

    问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。  Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

    4、List, Set, Map是否继承自Collection接口?

    List,Set是,Map不是

    5、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

    6、你所知道的集合类都有哪些?主要方法?

    最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。 Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。

    7,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

    Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

    8、ArrayList和Vector的区别,HashMap和Hashtable的区别

    答:就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半  就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

    展开全文
  • 换个说法:“工作中常用到的Java集合有哪些,应用场景是什么” 如何入门Java集合以及每个常用的子类我在PDF整理好了,这就不粘贴过来了,有需要的就在PDF查看就好了。 List集合 List集合下最常见的集合类有两个...
  • java基础—常用的集合类有哪些?比如List如何排序?... Set、List、Map.pngJava中常用的集合类对于集合,大家都不陌生了,常见的集合接口Set、List、Map等,其中Set和List继承自Collection。Coll...
  •  常见的Java类库有哪些?  Java类库非常多,比如Guice、OkHttp、Retrofit、JDeferred等。企业需求不同,程序员所选用的Java类库也不尽相同。相关统计数据显示,在2017年最受欢迎的三大Java类库分别是:  第三名...
  • 我们在面试中或者在实际工作中,常常问到这个问题,那么最基本的我们首先要了解什么是java容器,再去...我们先看一下java容器有哪些:数组,String,java.util下的集合容器数组长度限制为 Integer.Integer.MAX_VALUE...
  • (一)常见的集合有哪些? Map 接口和 Collection 接口是所有集合框架的父接口: 1. Collection 接口的子接口包括:Set 接口和 List 接口; 2. Map 接口的实现类主要有:HashMap、TreeMap、Hashtable、...
  • 01. 说说常见的集合有哪些吧?答:Map 接口和 Collection 接口是所有集合框架的父接口:1. Collection 接口的子接口包括:Set 接口和 List 接口;2. Map 接口的实现类主要有:HashMap、TreeMap、Hashtable、...
  • 排序相关的的基本概念排序:将一组杂乱无章的数据按一定的规律顺次排列起来。数据表( data list): 它是待排序数据对象的有限集合。...我们常见的一些排序算法,如图所示:Java中的经典算法之选择排序(Selecti...
  • E:元素(Element),多用于java集合框架 K:关键字(Key) N:数字(Number) T:类型(Type) V:值(Value) 语法:<T,…> T称为类型占位符,表示一种引用类型 好处:① 提高代码重用性。 ② 防止类型...
  • Java常见集合

    2018-05-03 13:17:11
    一、说说常见的集合有哪些?Map接口和Collection接口是所有集合框架的父接口1:Map接口和Collection集合 (1)Collection 接口的子接口包括:Set接口和List接口 (2)Map接口的实现类主要有:HashMap、TreeMap、...
  • Java常见排序算法有哪些?作为老牌编程语言,Java拥有广阔市场占有率,几乎90%以上大中型互联网应用系统在服务端开发都会首选Java。为了加入到Java这一高薪行业,很多人会选择专业学习一下,接下来千锋郑州就...
  • 1、万物皆为对象2、程序是对象的集合3、每个对象都自己的由其他对象所构成的存储。4、每个对象都拥有其类型。(每个类最重要的区别于其他类的特性就是“可以发送什么样的消息给它”)5、某一特定类型的所有对象都...
  • Set、List、Map.pngJava中常用的集合类对于集合,大家都不陌生了,常见的集合接口Set、List、Map等,其中Set和List继承自Collection。Collection是一组对象的集合,而Map存储的方式不一样,他是以键值对的形式存放...
  • java哪些集合是线程安全哪些是线程不安全

    万次阅读 多人点赞 2019-05-09 11:41:42
    这里自己总结了一些比较常见的java集合,对于这些集合的特点和区别后期博客中会进行总结介绍: 2.什么叫“集合是线程不安全的” 当多个并发同时对非线程安全的集合进行增删改的时候会破坏这些集合的数据完整性; ...
  • Java集合是我认为在Java基础中最最重要的知识点了,...换个说法:“工作中常用到的Java集合有哪些,应用场景是什么”List集合List集合下最常见的集合类有两个:ArrayList和LinkedList在工作中,我都是无脑用Array...
  • 对于集合,大家都不陌生了,常见的集合接口Set、List、Map等,其中Set和List继承自Collection。 Collection是一组对象的集合,而Map存储的方式不一样,他是以键值对的形式存放多个对象的。 Set和List又区别,...
  • Java常见集合(一)

    2019-10-26 13:09:12
    1. 说说常见的集合有哪些吧 答:Map接口和Collection接口是所有集合框架的父接口。 Collection接口的子接口包括:Set接口和List接口。 Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 461
精华内容 184
关键字:

java常见的集合有哪些

java 订阅