• 浅谈集合框架一、概念


      最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出。初学者对于本篇博客只建议作为参考,欢迎留言共同学习。

      本篇为介绍集合框架的体系及概念,具体使用方法请看下一篇(http://www.cnblogs.com/yjboke/p/8777629.html)。


    集合定义:java集合类就是一种工具类,就像是一个容器,可以存储任意数量的对象。

     
    与数组的区别:1、长度:数组的长度是固定的,集合的长度不是固定的,可以任意增减。
     2、访问方式:数组只能通过int类型下标获取元素,集合可通过任意类型映射获取对象。
     3、存储类型:数组只可以存储一种类型,集合可存放多种类型(如果不加泛型的话)。
     
    集合框架:在实际运用中,根据不同的需求,有了更多的不同数据结构的容器(不同类型的集合),在不断向上抽取的过程中形成了一个体系,也就是集合框架。
     
    设计:两大基类Collection和Map(最顶层的两个接口)
    区别:Collection表示的是一组纯数据。
      Collection主要有三个子接口:
    List:元素是有序的,允许有重复元素的集合,改集合体系有索引;
    ArrayList:底层的数据结构使用的是数组结构。
    特点:查询快,增删慢,线程不同步。
    LinkedList:底层使用的链表数据结构。
    特点:增删快,查询慢,线程不同步。
    Vector:底层是数据数据结构。
    特点:线程同步,但已被ArrayList替代,效率较低。
    Set:元素是无序的,不允许有重复元素的集合;
    HashSet:底层数据结构是哈希表
    HashSet是如何保证元素唯一性的?
    是通过元素的两个方法,hashCode和equals来完成。
    如果元素的HashCode值相同,才会判断equals是否为true。
    如果元素的hashcode值不同,就不会调用equals。
    TreeSet:可以对set集合中的元素进行排序。
    底层数据结构是二叉树;保证元素唯一性的依据,compareTo方法return 0;
    TreeSet排序的第一种方式:让元素自身具备比较性,元素需要实现Comparable接口,覆盖compareTo方法。这种方式也称为元素的自然顺序,或者叫做默认顺序
    TreeSet排序的第二种方式:当元素不具备比较性时,或者具备的比较性不是所需要的,这时就需要让集合自身具备比较性。在集合初始化时就有了比较方式。
    注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法。
     
    Queue:主要用于存储数据。(了解不多,不多做解释)
    -----------------------------------------------------------------------------------------
      Map表示的是一组键值对(key -- value)的映射关系。
      Map主要有三个子接口:
      Hashtable:底层是哈希表数据结构,不可以存入null键和null值,该集合是线程同步的。
      HashMap:底层是哈希表数据结构,可以存入null键和null值,该集合是线程不同步的。
      TreeMap:底层是二叉树数据结构,线程不同步。可以用于给map集合中的键进行排序(和Set很像,Set底层就是用的Map集合)。

    本篇为介绍集合框架的体系及概念,具体使用方法请看下一篇(http://www.cnblogs.com/yjboke/p/8777629.html)。

  • 相关阅读:
    mysql sleep
    mysql 与grafana数据展示时的时间处理
    DevSecOps调研
    django 启动mysql加载错误信息
    kubebuilder operator
    mysql 修改密码
    mysql 实例管理工具
    一文详解JackSon配置信息
    表达式计算(双栈实现)
    【转!】metersphere win源码部署
  • 原文地址:https://www.cnblogs.com/yjboke/p/8761195.html
Copyright © 2020-2023  润新知