精华内容
下载资源
问答
  • Java常见集合
    千次阅读
    2022-01-27 22:10:31

    Java常见集合分为两大类 Collection 和 Map
    集合是用来存储对象的容器。

    先说一说集合和数组的区别:
    1.数组的长度不可变,而集合的长度是可变的
    2.数组可以存基本数据类型和引用数据类型,而集合只能存储引用数据类型

    Collection:

    Collection是一个接口,List 接口和Set 接口继承了Collection接口

    list接口特点

    1.有序
    2.有下表
    3.元素可重复

    List接口常见的实现类

    1.ArrayList:底层数组实现,线程不安全,查找效率高
    初始容量为10,每次扩容为当前容量的1.5倍
    2.LinkdedList:底层双向链表实现,线程不安全,增删效率高
    3.Vector:底层数组实现,线程安全,可以根据枚举器Enumeration遍历

    Set接口特点

    1.无序
    2.无下标
    3.元素不可重复

    Set接口常见的实现类

    1.HashSet:底层 数组 + 链表 +红黑树实现
    2.TreeSet:底层红黑树实现,还实现了SortedSet接口,可以对插入的元素进行排序

    Map接口特点

    存储的是Key-Value格式的键对值
    1.无序
    2.无下标
    3.Key值不可重复,Value可重复

    Map接口常见的实现类

    HashMap:底层数组+链表+红黑树实现,线程不安全,key value允许为null,初始容量为16,当存储的数据大于当前容量乘0.75后,扩容为原来的2倍
    TreeMap:底层红黑树实现,可以对key进行自动排序,线程不安全
    HashTable:线程安全

    更多相关内容
  • 常见集合知识和面试题
  • 这份代码用 C++ 的模板类实现了一个集合类 Set,其 API 参考借鉴了 STL 中的 vector 类,采用动态内存及链表进行元素管理,并实现了一些常见集合算法:并集、交集,也实现了随机下标的存取。
  • java常见集合继承结构图及核心知识点.pdf
  • 集合类 github csv 是为处理 csv 而开源的 java 工具 有时候对象中会包含数组MapCollection 等常见集合 为了存储的便利性默认提供集合的相关支持 特性和普通字段保持一致如果指定注解转换则以注解为准 使用示例 ...
  • LaTeX常见集合符号

    千次阅读 2021-07-27 14:42:37
    1.集合中的 : \mid 2.属于: \in 2.不属于: \not\in 4.A包含于B: A \subset B 5.A真包含于B: A \subsetneqq B 6.A包含B: A \supset B 7.A真包含B: A \supsetneqq B 8.A不包含于B: A \not\subset B 9....

    1.集合中的 \mid: \mid

    2.属于:\in   \in

    2.不属于:\not\in    \not\in

    4.A包含于B:A \subset B A \subset B

    5.A真包含于B:A \subsetneqq B   A \subsetneqq B

    6.A包含B:A \supset B A   \supset B

    7.A真包含B:A \supsetneqq B   A \supsetneqq B

    8.A不包含于B:A \not\subset B   A \not\subset B

    9.A交B:A \cap B   A \cap B

    10.A并B:A \cup B   A \cup B

    11.A的闭包:\overline{A}   \overline{A}

    12.A减去B: A \setminus B   A \setminus B

    展开全文
  • 面试题(二):Java中常见集合

    千次阅读 2018-06-02 11:37:30
    Java 中常见集合 集合这方面的考察相当多,这部分是面试中必考的知识点。01. 说说常见的集合有哪些吧?答:Map 接口和 Collection 接口是所有集合框架的父接口:1. Collection 接口的子接口包括:Set 接口和 List ...

    Java 中常见集合

     

    集合这方面的考察相当多,这部分是面试中必考的知识点。

    01. 说说常见的集合有哪些吧?

    答:

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

    1. Collection 接口的子接口包括:Set 接口和 List 接口;

    2. Map 接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap 以及 Properties 等;

    3. Set 接口的实现类主要有:HashSet、TreeSet、LinkedHashSet 等;

    4. List 接口的实现类主要有:ArrayList、LinkedList、Stack 以及 Vector 等。

    02. HashMap 和 Hashtable 的区别有哪些?(必问)

    答:

    1. 

    HashMap 没有考虑同步,是线程不安全的;Hashtable 使用了 synchronized 关键字,是线程安全的;

    2. 

    前者允许 null 作为 Key;后者不允许 null 作为 Key。

    3. 

    03. HashMap 的底层实现你知道吗?

    答:

    Java8 之前,其底层实现是数组 + 链表实现,Java8 使用了数组 + 链表 + 红黑树实现。此时你可以简单的在纸上画图分析:

    04. ConcurrentHashMap 和 Hashtable 的区别? (必问)

    答:

    ConcurrentHashMap 结合了 HashMap 和 HashTable 二者的优势。

    HashMap 没有考虑同步,hashtable 考虑了同步的问题。但是 hashtable 在每次同步执行时都要锁住整个结构。

    ConcurrentHashMap 锁的方式是稍微细粒度的。 ConcurrentHashMap 将 hash 表分为 16 个桶(默认值),诸如 get,put,remove 等常用操作只锁当前需要用到的桶。

    面试官:ConcurrentHashMap 的具体实现知道吗?

    答:

    1. 

    该类包含两个静态内部类 HashEntry 和 Segment;前者用来封装映射表的键值对,后者用来充当锁的角色;

    2. 

    Segment 是一种可重入的锁 ReentrantLock,每个 Segment 守护一个 HashEntry 数组里得元素,当对 HashEntry 数组的数据进行修改时,必须首先获得对应的 Segment 锁。

    3. 

    05. HashMap 的长度为什么是 2 的幂次方?

    答:

    1. 

    通过将 Key 的 hash 值与 length-1 进行 & 运算,实现了当前 Key 的定位,2 的幂次方可以减少冲突(碰撞)的次数,提高 HashMap 查询效率;

    2. 

    如果 length 为 2 的次幂  则 length-1 转化为二进制必定是 11111……的形式,在于 h 的二进制与操作效率会非常的快,而且空间不浪费;

    3. 

    如果 length 不是 2 的次幂,比如 length 为 15,则 length-1 为 14,对应的二进制为 1110,在于 h 与操作,最后一位都为 0,而 0001,0011,0101,1001,1011,0111,1101 这几个位置永远都不能存放元素了,空间浪费相当大。

    4. 

    更糟的是这种情况中,数组可以使用的位置比数组长度小了很多,这意味着进一步增加了碰撞的几率,减慢了查询的效率!这样就会造成空间的浪费。

    5. 

    06. List 和 Set 的区别是啥?

    答:List 元素是有序的,可以重复;Set 元素是无序的,不可以重复。

    07. List、Set 和 Map 的初始容量和加载因子

    答:

    1. List

    · 

    ArrayList 的初始容量是 10;加载因子为 0.5; 扩容增量:原容量的 0.5 倍 +1;一次扩容后长度为 16。

    · 

    Vector 初始容量为 10,加载因子是 1。扩容增量:原容量的 1 倍,如 Vector 的容量为 10,一次扩容后是容量为 20。

    · 

    2. Set

    HashSet,初始容量为 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashSet 的容量为 16,一次扩容后容量为 32

    3. Map

    HashMap,初始容量 16,加载因子为 0.75; 扩容增量:原容量的 1 倍; 如 HashMap 的容量为 16,一次扩容后容量为 32

    08. Comparable 接口和 Comparator 接口有什么区别?

    答:

    1. 

    前者简单,但是如果需要重新定义比较类型时,需要修改源代码。

    2. 

    后者不需要修改源代码,自定义一个比较器,实现自定义的比较方法。

    3. 

    09. Java 集合的快速失败机制 “fail-fast”

    答:

    它是 java 集合的一种错误检测机制,当多个线程对集合进行结构上的改变的操作时,有可能会产生 fail-fast 机制。

    例如 :假设存在两个线程(线程 1、线程 2),线程 1 通过 Iterator 在遍历集合 A 中的元素,在某个时候线程 2 修改了集合 A 的结构(是结构上面的修改,而不是简单的修改集合元素的内容),那么这个时候程序就会抛出 ConcurrentModificationException 异常,从而产生 fail-fast 机制。

    原因: 迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在被遍历期间如果内容发生变化,就会改变 modCount 的值。

    每当迭代器使用 hashNext()/next() 遍历下一个元素之前,都会检测 modCount 变量是否为 expectedmodCount 值,是的话就返回遍历;否则抛出异常,终止遍历。

    解决办法:

    1. 

    在遍历过程中,所有涉及到改变 modCount 值得地方全部加上 synchronized;

    2. 

    使用 CopyOnWriteArrayList 来替换 ArrayList。

    3. 

    小结:本小节是 Java 中关于集合的考察,是 Java 岗位面试中必考的知识点,除了应该掌握以上的问题,包括各个集合的底层实现也建议各位同学阅读,加深理解。

     


    展开全文
  • 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()删除当前元素

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 常见集合的特点

    千次阅读 2019-05-10 20:41:02
    ArrayList 的特点: 1 底层数据结构是数组 2 增加和删除的效率低,查询和修改的效率高 3 能够存储null 值 4 线程不安全,效率高 5 有索引,能够方便检索 6 元素可重复,我们自己可以通过 选择排序去重复 ...
  • python常见集合代码汇总

    千次阅读 2021-03-05 21:19:56
    一般来说,集合表现形式为set 集合和列表非常相似,今天就给大家详细介绍下python常见集合代码。使用{}来创建集合set1 = {2, ‘ab’}print(set1)#运行结果 》》》{2, ‘ab’}#创建空集合, 需要用到set()s = {}print...
  • Java集合List常见方法

    2020-12-22 21:37:25
    Java集合常见方法 1.集合 在说java中集合方法之前,先来了解一下什么是集合,在学习使用集合之前,我们都学过数组的使用,他们的结构很相似,但是数组有很大的缺点,比如: 1.数组能使用的方法很少,如果非要使用,...
  • java 常见集合

    万次阅读 2019-07-17 15:30:12
    集合类存放于Java.util 包中,主要有3 种:set(集)、list(列表包含Queue)和map(映射)。 1. Collection:Collection 是集合List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,可以通过迭代器遍历集合中的...
  • Hibernate常见集合映射(Set,List_Array,Map,Bag)
  • 本文实例讲述了python集合常见运算。分享给大家供大家参考,具体如下: python生成不重复随机数放在列表中的效率比较 import random import time def RandomNumbers(number, start, end): '''使用列表来生成number...
  • Java常见的几种集合

    千次阅读 2020-12-04 15:23:29
    集合类是Java数据结构的实现。它是java.util包中的重要内容,允许以各种方式将元素分组,并定义了各种使这些元素更容易操作的方法。 二、Java集合类框架图 三、Java集合类型 Java集合框架主要包括两种类型的容器,...
  • 创建set集合 var set = new Set([“a”,”b”,”c”]); 2.2 增  set.add("d");  set.add("a");  set.add({}); 2.3 删 set.delete("a"); set.delete({});  2.4 获取迭代器 // 获取迭代器 var ...
  • Java集合常见面试题集锦

    千次阅读 多人点赞 2019-11-06 17:32:41
    集合是Java中的一个非常重要的一个知识点,主要分为List、Set、Map、Queue三大数据结构。它们在Java中的结构关系如下: Collection接口是List、Set、Queue的父级接口。 Set接口有两个常用的实现类:HashSet和...
  • java集合常见面试题附带答案解析
  • Java常见集合一览表

    千次阅读 2017-06-11 21:35:59
    Java中集合种类多,功能以及特性各异,为了便于记忆和使用,花了一些时间制作了一种Java常见集合一览表。 Java常见集合一览表 集合 接口/类 K/E V 是否线程安全 说明 Collection 接口 N...
  • java集合超详解

    万次阅读 多人点赞 2018-08-03 21:28:15
    一、集合大纲 1.集合和数组的区别: 2.Collection集合的方法: 3.常用集合的分类: Collection 接口的接口 对象的集合(单列集合) ├——-List 接口:元素按进入先后有序保存,可重复 │——...
  • 常见Exp漏洞POC集合

    2018-01-21 18:22:18
    该资源为bugscan收集的漏洞poc,喜欢的可以下载下来看看,有需要其他资源的也可以发邮件与我交流shulanyy@gmail.com,作为爱好他是免费的。
  • 1.1 第1课时 集合的概念与几种常见的数集
  • JAVA中常用的集合类型

    2013-06-05 16:39:26
    JAVA中常用的集合类型
  • 常见面试题集合及答案word版
  • 常见集合

    2021-04-04 16:32:25
    该源码案例是一款常见集合类,源码stkitdemo,STKit iOS开发者是有用的集合类,它可以帮助您简化方法来开发iOS应用程序节省时间和更有效率。
  • 主要介绍了Python3.5集合及其常见运算,结合实例形式分析了Python3.5集合的定义、功能、交集、并集、差集等常见操作技巧与相关注意事项,需要的朋友可以参考下
  • c语言考研复试 面试常见问题集合
  • ArrayList等常见集合的排序问题

    千次阅读 2016-08-10 11:21:50
    对于ArrayList等常用的集合具体业务类,基本上都实现了Comparable接口,即可以用来比较装载的对象实体。 主要用Collections.sort方法对集合类中的对象进行排序 Collections.sort的两种重载方法 Collections.sort...
  • Java集合常见面试题(一)

    万次阅读 2018-08-11 20:25:08
    集合和数组的区别: 1:数组是固定长度的;集合可变长度的。 2:数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。 3:数组存储的元素必须是同一个数据类型;集合存储的对象可以是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 507,169
精华内容 202,867
关键字:

常见集合

友情链接: ch5daima.rar