首页 > 其他分享 >list、set、map以及array的区别

list、set、map以及array的区别

时间:2022-10-09 15:04:11浏览次数:50  
标签:map 存储 set 索引 元素 list 增删 集合 array

对于刚刚学习集合框架来说,如何选择list、set、map以及array是比较模糊的

在此我将对这四种情况做总结:

  • array:数组,可以存储对象和基本数据类型,长度固定。
  • Collection:集合(单列),用于存储对象、不能存储基本数据类型(int,char等),但可以存储基本数据类型包装类(int-Integer,char-Character等),长度可变
    • 那么,为什么会出现这么多集合呢,我们可以把集合比如成容器。每个不同容器中对数据的存储方式不同,这种存储方式称为数据结构
    List:元素有序,可重复。
      • ArrayList:数组。特点:有索引(脚标),所以查找快,增删后每个元素的索引都发生改变,所以增删慢,而且数组越长增删越慢
      • LinkedList:链表。特点:无索引,每个元素都包含下一元素地址,查找需要逐一进行,所以查找慢,但是增删快只需要改变元素后面的地址。
      • Vector:线程同步数组 基本抛弃使用。
    Set:元素无序,不重复,无索引。
    • HashSet:哈希表。特点:线程非同步,保证元素唯一性原理:判断hashCode是个屁相同,洗过相同在判断equals方法是否为true。
    • TreeSet:二叉树。特点:可对用两种方法对集合中元素排序,1.实现comparable接口,覆盖compareTo方法。2.集合建立时规定,并自定义比较类。
  • Map:双列集合,用于存放键值对。键值是唯一的,不可重复

 

 

 

 

标签:map,存储,set,索引,元素,list,增删,集合,array
From: https://www.cnblogs.com/lxh-daniel/p/16772108.html

相关文章

  • ArrayList源码学习
    arraylist1、总体关系图  1.1:Serializable接口这是一个空接口,只有实现了这个接口的对象才可以进行序列化。然后这个序列化id是为了保证反序列化成功也就是在运......
  • LinkedList源码分析(二)
    ......
  • 如何使用JavaScript将Set转换为Array?
    https://blog.csdn.net/m0_66319974/article/details/122436737在JavaScript中,想要将Set(集合)转换为Array数组,可以通过以下方式实现。方法1:使用Array.from()方法Array.......
  • java BigDecimal使用详细介绍BigDecimal.setScale(int newScale, int roundingMode);的
    一、BigDecimal引入开发中经常遇到小数计算,比如System.out.println(1.01+2.31);计算结果并不是3.32而是3.3200000000000003,这是因为不论是float还是double都是浮点数,而计算......
  • JDK 1.8 HashMap 扩容源码详解
     作为开发人员,千万不能停留在实现功能上,一定要提升到性能方面上。这需要我们不断的实践,学习源码, 根据底层实现原理,来做出最好的操作。 就HashMap而言,一定是我们常用的......
  • Lombok和MapStruct冲突
    Lombok和MapStruct冲突导致无法生成正确的class文件。lombok自动生成getset等冗余代码。MapStruct对象copy。传统的BeanUtils.copy等利用的反射原理,效率较低,MapStruct使......
  • mysql 删除索引 Cannot drop index 'IX_t_billing_setup_CustomerID_WarehouseID': n
     --创建表createtablet_billing_setup(BillingSetupIDintnotnullauto_incrementcomment'编号',CustomerIDintnotnullcomment'',......
  • NET添加数据映射的两种方式(手动Controller和自动AutoMapper)
    手动添加映射在Controllers目录下找到所需要添加映射的xxxcontroller.cs文件,然后手动添加数据的映射:usingSystem;usingSystem.Linq;usingAutoMapper;usingMic......
  • Mybatis的返回值类型resultMap
    Mybatis的查询结果除了可以设置为resultType以外,还可以设置为resultMap.1.方式一:把resultType的值设置为Mapmapper文件:<selectid="selectReturnMap"resultType="j......
  • StatefulSet控制器
    应用程序存在“有状态”和“无状态”两种类别。无状态服务(StatelessService):该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的......