List是存储对象的容器,可以存储任意类型的对象且长度可变,List的存储对象是有顺序的,可重复的。

<1> List的接口框架

ArrayList实现类通过数组实现,在向集合中增加或删除时,需要对集合进行增容和拷贝,所以增删慢;而数组可以直接通过索引进行查找,所以查询快;一般查询多增删少的,优先选择ArrayList集合。

LinkedList实现类通过链表实现,在向集合中增加或删除时,无需扩容,所以增删快;但是不能通过索引进行定位查找,需要检索全部,所以查慢;一般增删多查询少的,优先选择LinkedList集合。

Vector实现类也是通过数组实现,是线程安全的,所以一般效率较ArrayList低。

<2> List接口的方法

增加    add(Object object); 将指定对象存储到List容器中。addAll(List list); 将指定集合中的元素存储到List容器中。

删除    remove(Object object); 将指定对象从容器中移除。removeAll(List list); 移除容器中与指定集合中的元素相同的元素。clear(); 清空容器中的所有元素。

修改    set(Integer index,Object object); 将容器中指定位置的元素修改成指定元素。

判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器中是否包含指定对象。containsAll(List list); 判断容器中是否包含指定集合中的所有元素。

获取    size(); 获取容器元素的数量。get(Integer index); 获取指定位置的元素。indexOf(Object object); 获取指定对象的位置索引,没有返回-1。lastIndexOf(Object object); 获取指定对象在容器中最后一次存储位置的索引。

Set也是存储对象的容器,可以存储任意类型的对象且长度可变。

<1> Set的接口框架

HashSet实现类按照哈希算法来存取对象的,是无序的,不可重复,但是null和"null"同时存在,会显示[null,null],是Set接口的最优实现,其底层实现依赖于HashMap的键不能重复特性,

TreeSet实现类使用红黑树来存储元素,实现了sortedSet接口,是有序存储和访问,不能写入null。

LinkedHashSet实现类也是按照哈希算法存取对象的,是有序的,不可重复,但是null和"null"同时存在,会显示[null,null],其底层依赖于LinkedHashMap。

<2> Set接口的方法

并        addAll(Set set); 将指定集合中的元素并入容器中,并去重。

交        retainAll(Set set); 将指定集合中元素与容器中元素取交集。

删除    removeAll(Set set); 移除容器中与制定集合中的元素相同的元素。remove(Object object); 将指定对象从容器中移除。

判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器是否包含指定对象。containsAll(Set set); 判断容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。

获取    iterator(); 遍历容器中的元素。

Map也是存储对象的容器,以键-值的形式存储对象,键对象不可重复可为null,值对象可重复可为null。

<1> Map的接口框架

HashMap实现类按照哈希算法存取键对象,无序的且不可重复

TreeMap实现类使用红黑树存储键对象,有序的

<2> Map接口的方法

获取    get(Object key); 根据指定的key对象获取容器中键对应的值。entrySet(); 将容器中的所有键值对以key=value的形式保存在Set集合中。keySet(); 将容器中的所有键对象保存在Set集合中。 iterator(); 遍历容器中的元素

添加    put(Object key,Object value); 将指定的键值对添加到容器。

删除    remove(Object key); 移除容器中与指定key对象相同的键值对。

判断    isEmpty(); 判断容器是否为空。contains(Object object); 判断容器是否包含指定对象。containsAll(Set set); 判断容器是否包含指定集合的所有元素。clear(); 清空容器中的所有元素。

转载于:https://www.cnblogs.com/zzb-yp/p/10384387.html

理解总结篇—List、Set、Map相关推荐

  1. java js中 function函数报错_浅析JS中对函数function的理解(基础篇)

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  2. jedis的源码理解-基础篇

    [jedis的源码理解-基础篇][http://my.oschina.net/u/944165/blog/127998] (关注实现关键功能的类) 基于jedis 2.2.0-SNAPSHOT 首先是 ...

  3. 卷积神经网络的深入理解-基础篇(卷积,激活,池化,误差反传)

    卷积神经网络的深入理解-基础篇 一.卷积(convolution) 1.无padding时 2.有padding时 3.卷积与全连接 通道数(一般一张彩色图像为三通道RGB) 二.激活(激活函数)(持 ...

  4. DGCNN理解理论篇

    DGCNN理解理论篇 参考了LDGCNN论文,分别从输入点集.任务描述.点云特性.局部图结构.图特征提取等角度给出DGCNN数学理论理解. 输入点集 输入数据可用集合来描述,即向量的集合,每一个向量代 ...

  5. 推荐系统实战-概念理解入门篇

    最近组内需要对一款涂色游戏上推荐系统,需要学习相关内容,做一个记录供其他同学参考.学习内容主要涉及极客时间刑无刀的<推荐系统36式>.因本人工作内容偏后台,所以本专题内容主要会是推荐系统的 ...

  6. VBA中的数据字典,可以理解为Java中的Map

    一下代码比较简陋 前见谅 以下代码可以理解为 Map<String,String[]> For rowStart = 5 To 10000Dim currentDataList As Ob ...

  7. Java 集合深入理解(14):Map 概述

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 终于把 List 常用的几种容器介绍完了,接下来开始 Map 的相关介绍. 什么是 Map Java 中的 Map 接口 ...

  8. 支付产品理解第二篇——闪付与手机支付

    第二篇--火遍全球的"闪付"是什么,跟手机厂商的支付是什么关系 近些年大家一定或多或少有接触过"闪付"这个词,但是对于它到底是什么样的东西可能理解不是很清晰.我 ...

  9. 理解目标检测当中的mAP

    我们在评价一个目标检测算法的"好坏"程度的时候,往往采用的是pascal voc 2012的评价标准mAP. 网上一些资料博客参差不齐,缺乏直观易懂的正确说明.希望这篇博文能够给大 ...

最新文章

  1. 自定义评分器Similarity,提高搜索体验
  2. exist not exist 分析
  3. suse linux通过iso文件安装gcc
  4. sprintf,sscanf,snprintf
  5. centos7 LNMP
  6. jQuery07源码 (3803 , 4299) attr() prop() val() addClass()等 : 对元素属性的操作
  7. 信息学奥赛一本通C++语言——1119:矩阵交换行
  8. 鸿蒙系统 安卓游戏,华为鸿蒙系统运行安卓游戏出现新状况!安卓换皮论被彻底打脸?...
  9. [转载]Oracle监听器安装与设置(2)
  10. Redis 设计与实现
  11. win7 无线网卡无法连接,启动wlan autoconfig 服务报错误1:函数不正确
  12. xp系统配置打印服务器,xp系统打印机纸张大小的自定义设置方法
  13. php linux OpenOffice+JODConverter+php实现将word/ppt/excel文档转换为pdf
  14. add_metrology_object_circle_measure (对齐测量模型)
  15. 阿ken的HTML、CSS的学习笔记_浮动与定位(笔记六)
  16. 请叫我程序员!(一)
  17. LintCode Find the Duplicate Number
  18. 如何在年薪10万的上班族让自己第二年达到20万以上?
  19. android应用更新升级
  20. 西门子smart200 自由口通讯(接收部分)

热门文章

  1. Windows下安装及使用NVM
  2. ubuntu如何安装samba
  3. Git----分支管理之分支管理策略04
  4. BZOJ 2097 [Usaco2010 Dec]Exercise 奶牛健美操
  5. python基本语法1.2--数的移位及与或抑或相关计算
  6. eclipse和jdk的版本问题,比如printf()出错
  7. 【hdoj_2152】Fruit(母函数)
  8. Class.getResource和ClassLoader.getResource的区别分析
  9. C++学习之路,漫长而遥远
  10. Windows Mobile 编程 (Win32) - 获取设备能力