对于刚刚学习集合框架来说,如何选择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:双列集合,用于存放键值对。键值是唯一的,不可重复

list、set、map以及array的区别的更多相关文章

  1. JavaScript中Map和ForEach的区别

    译者按: 惯用Haskell的我更爱map. 原文: JavaScript — Map vs. ForEach - What’s the difference between Map and ForE ...

  2. Javascript的map与forEach的区别

    原理: 高级浏览器支持forEach方法语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: forEach:用来遍历数组中的每一项:这个方法执行是没 ...

  3. java8Stream map和flatmap的区别

    map和flatmap的区别 map只是一维 1对1 的映射 而flatmap可以将一个2维的集合映射成一个一维,相当于他映射的深度比map深了一层 , 所以名称上就把map加了个flat 叫flat ...

  4. JS中map与forEach的区别

    很多同学可能对于map与forEach的区别不是太了解,今天我们介绍一下JS中的map与forEach方法, 我对map的理解是,这个方法对一个数组arr1中的每一个元素进行遍历(传递给一个数组,参数 ...

  5. for, for in, for of, map, forEach 循环的区别:

    for, for in,  for of, map, forEach 循环的区别: for  遍历数组: //对象遍历数组 var arr = [ {Monday: '星期一', Tuesday: ' ...

  6. Spark存储Parquet数据到Hive,对map、array、struct字段类型的处理

    利用Spark往Hive中存储parquet数据,针对一些复杂数据类型如map.array.struct的处理遇到的问题? 为了更好的说明导致问题的原因.现象以及解决方案,首先看下述示例: -- 创建 ...

  7. JS002. map( ) 和 filter( ) 的区别和实际应用场景(递归函数、深度优先搜索DFS)

    在开发过程中难免会碰到省市区级联的操作,一般后端人员是不愿意将中文储存在数据库的. 由于应用页面较多,我们在通过区域Code写查字典函数时应该注意函数的 时间复杂度 / 空间复杂度. 如果用三层for ...

  8. list、set、map、array间的相互转换

    list.set.map.array间的相互转换 list转set Set set = new HashSet(new ArrayList()); set转list List list = new A ...

  9. 探求C#.Net中ArrayList与Array的区别 【转】

    ArrayList与Array的区别概述     ArrayList 是数组的复杂版本.ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的一些功能.例如 ...

随机推荐

  1. PHP操作mysql类

    <?php class Mysql{ //数据库连接句柄 private $link; //返回结果集 private $result; //返回查询数据 private $data; //执行 ...

  2. Linux下mysql数据库的命令

    连接数据库命令:mysql -u 用户名 -p 密码 要求你输入要连接数据库的用户名和密码.用户名默认root密码不方便输入时,可以只输入:mysql -u 用户名 -p 然后回车,此时提示你输入密码 ...

  3. STM32驱动DHT11温湿度传感器

    DHT11 是一款湿温度一体化的数字传感器.该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接.通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温 ...

  4. WebService调用权限验证 SoapHeader

    一般在项目中,制作的都是基于SOAP协议的webservices,其描述语言是WSDL.但是有时候在项目中,需要保证webservices的安全,需要对其进行进行验证,那么我们就要实现SoapHead ...

  5. UVa 10925 - Krakovia

    题目大意:关于大数的加法和除法的,用Java的BigInteger可以方便地解决. import java.io.*; import java.util.*; import java.math.*; ...

  6. Oracle用户管理和角色管理

    原博:http://liwx.iteye.com/blog/1182251 一.创建用户的Profile文件 SQL> create profile student limit // stude ...

  7. 连接linux主机

    需要工具:putty PuTTY是一个Telnet.SSH.rlogin.纯TCP以及串行接口连接软件 远程连接Linux云服务器-命令行模式 1.远程连接工具.目前Linux远程连接工具有很多种,您 ...

  8. delphi字符串操作函数一览

    首部 function SameText(const S1, S2: string): Boolean; $[SysUtils.pas 功能 返回两个字符串是否相等 说明 不区分大小写 参考 < ...

  9. BNU Online Judge-29140

    题目链接 http://www.bnuoj.com/bnuoj/problem_show.php?pid=29140 看到这样的题,应该想到an  与an-1  的关系,他们是会有关系的你要去找 代码 ...

  10. JavaWeb学习篇之----HTTP协议详解

    简介: HTTP是hypertexttransfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程. HTTP协 ...