通过面试题,让我们来了解集合

  

前言

  

欢迎关注公众号:<强>编码器编程
获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! * *

  
  

本章主要介绍收藏集合相关知识,结合面试中会提到的相关问题进行知识点的梳理。希望能帮到大家~
基于JDK1.8,如有错误,还望大家能够指出!

     

涉及的收藏集合相关面试题

  
      <李> 1。什么是集合?李   <李> 2.艾娃中集合类型都有哪些?有什么特点?李   <李> 3。说一说集合的父类集合?李   <李> 4。数组和集合都有哪些区别?李   <李> 5。说一说迭代器迭代器李   <李> 6.收集接口中几种重要的类和接口简介李   
  

1。什么是集合?

  
 <代码>来自百度百科的回答: 
  
      <李>集合类存放于java.util包中。   <李>集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(参考)。   <李>集合类型主要有3种:设置(集),列表(列表)和地图(映射)。   <李>集合接口分为:收集和地图、列表、设置实现了收集接口   
  

2. java中集合类型都有哪些?各有什么特点吗?

  

<强>收集两大体系:链表列表,集合设置

  

列表特点:元素有序;元素可以重复;元素都有索引(角标)
列表里存放的对象是有序的,同时也是可以重复的,列表关注的是索引,拥有一系列和索引相关的方法,查询速度快。
因为往列表集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。

  

设置特点:元素无序;元素不可以重复;
设置里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。

  

同时集合中还有另外一种类型:地图(映射)。

  

地图特点:键值对,键不可以重复;值可以重复;
映射集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对映射集合遍历时先得到键的设定集合,对设置集合进行遍历,得到相应的值。

  

3。说一说集合的父类集合?

  

3.1收集体系结构图

  

通过面试题,让我们来了解集合

  

集合   
 <代码>列表(有序集合,允许相同元素和零)
  ——LinkedList(非同步,允许相同元素和null,遍历效率低插入和删除效率高)
  ——ArrayList(非同步,允许相同元素和null,实现了动态大小的数组,遍历效率高,用的多)
  ——矢量(同步,允许相同元素和null,效率低)
  ——栈(继承自向量,实现一个后进先出的堆栈)
  
  集(无序集合,不允许相同元素,最多有一个零元素)
  ——HashSet(无序集合,不允许相同元素,最多有一个零元素)
  
  地图(没有实现收集接口,关键不能重复,价值可以重复,一个关键映射一个值)
  ——散列表(实现地图接口,同步,不允许空作为键和值,用自定义的类当作关键的话要复写hashCode和装备的方法,)
  ——HashMap(实现地图接口,非同步,允许空作为键和值,用的多)
  ——WeakHashMap(实现地图接口) 
  

3.2中集合的主要方法

  

(1)添加
布尔加(E o);
布尔加(Collection<?E>延伸;

c);   

(2)删除
逻辑删除(对象o);
布尔removeAll (Collection<?E>延伸;c)

  

空白clear ();

  

(3)判断
。判断集合中是否有元素:布尔isEmpty (); b
。判断集合中是否包含某个元素:布尔包含(对象o);
c。判断集合中是否包含某些元素:布尔包含(Collection<?比;

c);   

(4)获取
。获取集合中元素个数:int大小();
b。遍历集合中所有元素:Iteratoriterator ();
c。判断两个集合中是否存在相同的元素并保留两个集合中相同的元素删除不同的元素:布尔retainAll (Collection<?比;

c);   

(5)其他
将集合中元素转为数组:
。物质[]toArray (); b
。& lt; T>T [] toArray ();泛型

  

<强> Java8新增方法
在JDK 8以后,收集接口还提供了从集合获取连续的或者并行流:
Stream流()
StreamparallelStream ()
于收集接口相关还有一个抽象类AbstractCollection:
AbstractCollection是一个抽象类,实现了收集接口的部分功能,实现了一些最基本的通用操作,把复杂的和业务相关的延迟到子类实现。

通过面试题,让我们来了解集合