当前位置: 首页 > news >正文

Java集合框架(知识整理)

集合框架

Java 集合框架可以分为两条大的支线:

1、Collection,主要由 List、Set、Queue 组成:

  • List 代表有序、可重复的集合,典型代表就是封装了动态数组的 ArrayList 和封装了链表的 LinkedList;
  • Set 代表无序、不可重复的集合,典型代表就是 HashSet 和 TreeSet;
  • Queue 代表队列,典型代表就是双端队列 ArrayDeque,以及优先级队列 PriorityQueue。

2、Map,代表键值对的集合,典型代表就是 HashMap。

一、List

  • 特点:存取有序,可以存放重复的元素,可以用下标对元素进行操作。

1)ArrayList

  • 特点:

    • ArrayList 是由动态数组实现的,支持随机存取,也就是可以通过下标直接存取元素;
    • ArrayList 在数组的基础上实现了自动扩容,并且提供了比数组更丰富的预定义方法(各种增删改查),非常灵活;
    • 从尾部插入和删除元素会比较快捷,从中间插入和删除元素会比较低效,因为涉及到数组元素的复制和移动;
    • 如果内部数组的容量不足时会自动扩容,因此当元素非常庞大的时候,效率会比较低
  • 创建:

    //下面两个创建的效果是差不多的
    ArrayList<String> alist = new ArrayList<String>();
    List<String> alist = new ArrayList<>();
    
    //非常确定 ArrayList 中元素的个数,在创建的时候还可以指定初始大小
    List<String> alist = new ArrayList<>(20);            
    
  • 功能:

    • 基本数组的增删改查,不过当添加删除中间的元素时,对应后续的元素位置得跟着向后向前移,考虑时间复杂度等性能
    • 扩容需要重新复制数组的

2)

相关文章:

  • TSMaster【第四篇:目击之术——总线测量窗口精解】
  • 一文讲解Redis中的混合持久化
  • Touchgfx 编写下载算法文件(.stldr)
  • 【Alertmanager】alertmanager告警多种通知方式--企业微信告警、钉钉告警、电话和短信告警
  • 单链表相关操作(基于C语言)
  • 【Linux基础】Linux下常用的系统命令
  • 工业路由器和工业交换机,打造高效稳定的工业网络?
  • 达梦统计信息
  • 龙臻:独立电影的创新力量与国际认可
  • ArcGIS Pro中等高线的生成与应用详解
  • 【Unity】Unity clone 场景渲染的灯光贴图异位问题
  • 网页五子棋——对战后端
  • 全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、调优)
  • 学习aigc
  • 深度学习每周学习总结Y1(Yolov5 调用官方权重进行检测 )
  • 驱动开发WDK(1)-环境准备和初始程序。详细教程
  • 低概率发生调用`pthread_cond_wait`的线程没有被唤醒
  • 一种简单有效的分析qnx+android智能座舱项目中的画面闪烁的方法(8155平台)
  • solidity之Foundry安装配置(一)
  • Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
  • 上博东馆常设陈列入选全国博物馆“十大精品”
  • 全国游泳冠军赛:孙杨、潘展乐同进400自决赛,今晚将正面对决
  • 淮安市车桥中学党总支书记王习元逝世,终年51岁
  • 新闻1+1丨强对流天气频繁组团来袭,该如何更好应对?
  • 乌克兰谈判代表团由12人组成,乌防长率领
  • 中国人民银行等四部门联合召开科技金融工作交流推进会