首页 > 其他分享 >开发中如何选择集合类

开发中如何选择集合类

时间:2023-04-24 22:02:25浏览次数:39  
标签:链表 HashMap 一组 选择 开发 数组 红黑树 集合 底层

开发中如何选择集合类?

主要取决于业务操作特点,具体分析如下:

  1. 先判断存储的类型:是一组对象(单列)还是一组键值对(双列)

  2. 一组对象单列:用Collection接口

    允许重复:List

    增删多:LinkedList[底层是双向链表]

    改查多:ArrayList[底层是Object类型可变数组]

    不允许重复:Set

    无序:HashSet[底层是HashMap,维护了一给哈希表:数组+链表 +红黑树;

    排序:用TreeSet;

    插入和取出顺序一致:用LinkedHashSet,也是数组+双向链表+红黑树

    3.一组键值对:Map

    键无序:HashMap

    键排序:TreeMap

    键插入和取出顺序一致:LinkedHashMap,底层是HashMap,也是数组+双向 链表+红黑树

    读取文件用:Properties

     

 

 

标签:链表,HashMap,一组,选择,开发,数组,红黑树,集合,底层
From: https://www.cnblogs.com/sqhBlog123/p/17351068.html

相关文章

  • java排序算法2(简单选择排序、堆排序)
    简单选择排序---不稳定选择排序在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后以此类推,直到所有元素均排序完毕。for(inti=0;i<arr.length;i++){//记录最小值下标位置intmin=i;for(intj=i+1;j<arr.leng......
  • 1 Go语言介绍、 2 Go开发环境搭建 、3 第一个helloworld 、4 变量命名规范 、5 变量的
    目录1Go语言介绍2Go开发环境搭建3第一个helloworld4变量命名规范5变量的定义和使用1Go语言介绍#Go语言介绍Go即Golang,是Google公司2009年11月正式对外公开的一门编程语言Go是【静态强类型】语言,是区别于解析型语言的编译型语言(静态:类型固定强类型:不同类型不允许直接......
  • SpringMVC01_MVC的执行和注解开发
    一、SpringMVC概述​ SpringMVC是Spring框架的一个模块,因此SpringMVC无需和Spring进行整合就可以使用。SpringMVC是一个基于MVC的Web框架,即SpringWebMVC。SpringWebMVC和Struts2都属于表现层的框架,它是Spring框架的一部分。​<!--引入Spring框架的We......
  • 【Lua】VSCode 搭建 Lua 开发环境
    前言最近在找工作,基本所有的岗位都会问到Lua(甚至拼UI的都要求会Lua),咱能怎么办呢,咱也只能学啊……工欲善其事,必先利其器。第一步,先来把环境配置好吧!当前适用版本:LuaBinaries版本:5.4.2VSCode版本:1.77.3文章最近更新日期:2023.04.24 一、下载LuaBinariesLua官网:T......
  • collection-集合迭代
    1.关于集合迭代/遍历注意:以下讲解的遍历方式/迭代方式是所有Collection拥有的一种方式在Map集合中不能使用,在所有Collection及子类中使用创建集合对象 对collection集合进行遍历/迭代1.获取集合对象迭代器Iterator Iterator中有三个......
  • 将集合中的某一条数据添加到首位或者最后一位
    直接上代码publicstaticvoidmain(String[]args){List<Customer>addressList=newArrayList<>();Customerc1=newCustomer();c1.setId("1");c1.setName("ckf");addressList.add(c1);......
  • gitlab 开发人员更换手机后MFA认证无法登录
    目录gitlab开发人员更换手机后MFA认证无法登录解决方法gitlab开发人员更换手机后MFA认证无法登录开发人员用mfa二次认证登录gitlab,有开发更换手机后,发现登录gitlab时必须输入mfa二次认证解决方法需要找运维管理人员,登录mfa取消二次认证,登录后自己再开启二次认证运维人员以......
  • 云原生周刊:2023 年 Java 开发人员可以学习的 25 大技术技能
    文章推荐2023年Java开发人员可以学习的25大技术技能这篇文章为Java开发人员提供了2023年需要学习的一些重要技能,这些技能涵盖了现代Java开发、大数据和人工智能、安全性、分布式系统和区块链、以及其他领域。Java开发人员应该根据自己的需求和职业规划,选择适合自己......
  • 一款全面又开源的区块链开发者工具箱
    开源区块链开发者工具箱https://ChainTool.tech今天可以正式上线了。ChainTool使用完全开源的方式编写一些开发者日常经常使用的工具。关于ChainToolDAO大约在两个月前,ChainToolDAO成立了,成立ChainToolDAO的来由是这样的:我是一名区块链开发者,经常要遇到一些琐碎的工作,......
  • 瑞芯微RK3568开发板发布邮票孔开发板
    瑞芯微RK3568开发板发布邮票孔开发板iTOP-3568邮票孔开发板采用瑞芯微RK3568处理器,22nm工艺制程,集成4核A55架构处理器和MaliG522EE图形处理器,支持4K解码和1080P编码,内置独立的NPU,可用于轻量级人工智能应用,开发板采购底板+核心板的方式,两种连接方式,多种核心板邮票孔连接方......