首先我们要了解什么是集合?

  正所谓容器,比如说杯子是装水的容器,衣柜是装衣服的容器,那么集合就是装数据的容器。

集合有什么特点呢?

  1.集合长度是可变的

   2.集合用来存储对象

集合和数组有什么区别呢?

  1.数组用可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型。

   2.数组长度一旦定义就不可变了,集合长度是可变的。

   3.数组只能存储同一种类型的数据,集合可以存储多种类型的对象。

常用的集合有哪些呢?

  集合分为两种Collection和Map

  Collection下面的接口有List和Set,Map的实现类有HashMap,Hashtable,TreeMap,LinkedHashMap,ConcurrentMap

  List接口的实现类有ArrayList和LinkedList和Vector

  Set接口的实现类有HashSet,LinkedHashSet,TreeSet

那么List,Set,Map之间有什么区别呢?

  List是有序的,可重复的

  Set是无序的,不可重复的

  Map存储的是键值对(key-value),key是无序的,不可重复的,value是无序的,可重复的

集合框架的底层数据结构分别是什么呢?

  ArrayList:Object类型的数组

  vector:Object类型的数组

  LinkedList:双向循环链表

  TreeSet:红黑树

  HashSet:基于HashMap实现的

  LinkedHashSet:基于LinkedHashMap实现的

  TreeMap:红黑树

  HashMap:在jdk8以前用数组+链表,jdk8以后也是数组+链表但是当链表长度大于8时,链表会转化成红黑树(这样的话查找效率会增加)

  LinkedHashMap:和HashMap相同,唯一添加的就是双向链表,这样使得它可以顺序存储,也可以进行顺序操作

  Hashtable:数组+链表

那些集合是线程安全的?

  1.vector

  2.堆栈类

  3.Hashtable(底层方法都加了synchronize)

如何确保集合不被修改?

  建立一个只读集合使用Collections.unmodifiableCollection(list)

什么是迭代器,如何使用

  Iterator:可以遍历任何Collection接口

   使用:

    List<String> list = new ArrayList<String>;

    Iterator<String> it = list.iterator(); 

    while(it.hasNext){

      String its = it.Next();

      System.out.println(its)

    }

如何边遍历边移出

    List<String> list = new ArrayList<String>;

    Iterator<String> it = list.iterator(); 

    while(it.hasNext){

     it.remove();

    }

Iterator和ListIterator有什么区别

  1.前者可以遍历List和Set,后者只能遍历List

  2.前者只能单向遍历,后者可以双向遍历

随后分别介绍各种集合

Collection接口

  1.List接口

    ArrayList的优缺点

        优点:底层数组实现,查找快

           顺序添加元素方便

        缺点:插入和删除元素时候,需要做一次复制操作,耗费性能

     如何实现数组和List之间的转换

        数组->List:  Arrays.asList(array)

        List->数组:  list.toArray()

java之集合容器(Collection,Map)的更多相关文章

  1. Java中集合List,Map和Set的区别

    Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...

  2. Java中集合List,Map和Set的差别

    Java中集合List,Map和Set的差别 1.List和Set的父接口是Collection.而Map不是 2.List中的元素是有序的,能够反复的 3.Map是Key-Value映射关系,且Ke ...

  3. 【Java】集合概述Collection、Map

    Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeS ...

  4. 十七、Java基础---------集合框架之Map

    前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...

  5. Java各种集合容器的总结

    Java容器指的是List,Set,Map这些类.由于翻译的问题,问到集合,Collection这些指的都是它们几个. List ArrayList 随机访问快 LinkedList 插入删除快 这个 ...

  6. java学习——集合框架(Collection,List,Set)

    集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储. 集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存储基本数据类型值. ...

  7. Java:集合,Collection接口框架图

    Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...

  8. Java自学-集合框架 Collection

    Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进 ...

  9. [Java复习] 集合框架 Collection

    Q1 Collection java的集合以及集合之间的继承关系? 数组和链表的区别? 固定长度,连续内存,不能扩展,随机访问快,插入删除慢.链表相反 List, Set, Map的区别? List, ...

随机推荐

  1. netty---sync,await

    LOG.info("*************************WINDOWS系统*********************************"); //设置事件处理 ...

  2. java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier;)V

    spring-data-redis 2的版本只支持spring5和spring boot2+,建议降低spring-data-redis版本 <!-- redis --> <depe ...

  3. Java 中 static 的作用

    static 关键字的作用 在 Java 中 static 关键字有4种使用场景,下面分别进行介绍: 1.static 成员变量 public class Student { // 静态成员变量 pr ...

  4. SQL Server通过创建临时表遍历更新数据

    前言: 前段时间新项目上线为了赶进度很多模块的功能都没有经过详细的测试导致了生成环境中的数据和实际数据对不上,因此需要自己手写一个数据库脚本来更新下之前的数据.(线上数据库用是SQL Server20 ...

  5. Mybatis的几种传参方式,你了解吗?

    持续原创输出,点击上方蓝字关注我 目录 前言 单个参数 多个参数 使用索引[不推荐] 使用@Param 使用Map POJO[推荐] List传参 数组传参 总结 前言 前几天恰好面试一个应届生,问了 ...

  6. Spring学习(八)AOP详解

    文章更新时间:2020/04/06 一.一个例子 在上面的例子中,包租婆的核心业务就是签合同,收房租,那么这就够了,灰色框起来的部分都是重复且边缘的事,交给中介商就好了,这就是 AOP 的一个思想:让 ...

  7. java原生程序redis连接(连接池/长连接和短连接)选择问题

    最近遇到的连接问题我准备从重构的几个程序(redis和mysql)长连接和短连接,以及连接池和单连接等问题用几篇博客来总结下. 这个问题的具体发生在java原生程序和redis的交互中.这个问题对我最 ...

  8. 一次性升级所有python包的靠谱并且简单的方法

    1.  用pip-review包pip install pip-review   #安装包pip-review --auto        #自动批量升级指令2.  编写代码import pipfro ...

  9. Python3基础——递归

    递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归函数的优点是定义简单,逻辑清晰.理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰. 使用递归函数需要注意防止栈 ...

  10. 总线SPI的Arduino库函数

    来源参考:https://www.cnblogs.com/MyAutomation/p/9348480.html 总线SPI的Arduino库函数 SPI基本知识 SPI:高速同步串行口.是一种标准的 ...