--------概述:
1、Java 集合就像一种容器,可以把多个对象的引用放入容器中
2、Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组
3、Java 集合可分为 Set、List 和 Map 三种体系
Set:无序、不可重复的集合
List:有序,可重复的集合 Map:具有映射关系的集合

--------Collection 接口
Collection 接口是 List、Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合:

--------使用 Iterator 接口遍历集合元素
1、主要用于遍历 Collection 集合中的元素

Iterator 对象也被称为迭代器
2、隐藏了各种 Collection 实现类的底层细节

向应用程序提供了遍历 Collection 集合元素的统一编程接口
3、Iterator 仅用于遍历集合
Iterator 本身并不提供承装对象的能力。
如果需要创建Iterator 对象,则必须有一个被迭代的集合。

--------使用 foreach 循环遍历集合元素
for(Person p:persons){
System.out.println(p);
}

--------Set 集合1、Set 集合不允许包含相同的元素 如果试图把两个相同的元素加入同一个 Set 集合中,则添加操作失败。(不报错)2、使用equals(),比较Set是否相同 Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法
--------HashSet1、HashSet 是 Set 接口的典型实现 大多数时候使用 Set 集合时都使用这个实现类。
2、HashSet 按 Hash 算法来存储集合中的元素 因此具有很好的存取和查找性能。3、HashSet 具有以下特点:
不能保证元素的排列顺序 HashSet 不是线程安全的 集合元素可以使用 null

--------TreeSetTreeSet 是 SortedSet 接口的实现类,TreeSet 可以确保集合元素处于排序状态。

--------List
1、代表一个元素有序的集合

集合中的每个元素都有其对应的顺序索引
2、允许使用重复元素

可以通过索引来访问指定位置的集合元素。3、默认按元素的添加顺序设置元素的索引
4、
根据索引来操作集合元素的方法

--------ArrayList 和 Vector(了解)ArrayList 和 Vector 是 List 接口的两个典型实现区别:
Vector是一个古老的集合,通常建议使用 ArrayList

ArrayList 是线程不安全的,而 Vector 是线程安全的。

即使为保证 List 集合线程安全,也不推荐使用 Vector
--------Map1、用于保存具有映射关系的数据 Map 集合里保存着两组值,一组值用于保存 Map 里的 Key,另外一组用于保存 Map 里的 Value
2、key 和 value 都可以是任何引用类型的数据
3、Key 不允许重复4、Key 和 Value 之间存在单向一对一关系
即通过指定的 Key 总能找到唯一的,确定的 Value。

--------

--------TreeMapTreeMap 存储 Key-Value 对时

需要根据 Key 对 key-value 对进行排序。

可以保证所有的 Key-Value 对处于有序状态。

TreeMap 的 Key 的排序: 自然排序:
TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException 定制排序:
创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对 TreeMap 中的所有 key 进行排序。此时不需要 Map 的 Key 实现 Comparable 接口
--------

jah老师中关于集合的总结的更多相关文章

  1. 14.python中的集合

    什么是集合?正如其字面的意思,一堆东西集中合并到一起.乍一听貌似和容器没什么差别,嗯,好吧,集合也算是一种容器. 在学习这个容器有什么不同之前,先看看集合是如何创建的: a = set() #可变集合 ...

  2. JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序

    前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...

  3. java中的集合操作类(未完待续)

    申明: 实习生的肤浅理解,如发现有错误之处.还望大牛们多多指点 废话 事实上我写java的后台操作,我每次都会遇到一条语句:List<XXXXX> list = new ArrayList ...

  4. Java 中的集合接口——List、Set、Map

    Java 中的集合接口——List.Set.Map 什么叫集合:集合就是Java API所提供的一系列类的实例,可以用于动态存放多个对象.这跟我们学过的数组差不多,那为什么我们还要学集合,我们看看数组 ...

  5. C#中的集合有几种?

    C#中的集合有几种? Array ArrayList List<T> Stack<T> Queue<T> Dictionary<K,V> HashTab ...

  6. Java中的集合框架

    概念与作用 集合概念 现实生活中:很多事物凑在一起 数学中的集合:具有共同属性的事物的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象 在编程时,常常需要集中存放多 ...

  7. 实现java 中 list集合中有几十万条数据,每100条为一组取出

    解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...

  8. 线程高级应用-心得8-java5线程并发库中同步集合Collections工具类的应用及案例分析

    1.  HashSet与HashMap的联系与区别? 区别:前者是单列后者是双列,就是hashmap有键有值,hashset只有键: 联系:HashSet的底层就是HashMap,可以参考HashSe ...

  9. java中对集合对象list的几种循环访问

    java中对集合对象list的几种循环访问的总结如下 1 经典的for循环 public static void main(String[] args) { List<String> li ...

随机推荐

  1. CNN结构:用于检测的CNN结构进化-一站式方法

    有兴趣查看原文:YOLO详解 人眼能够快速的检测和识别视野内的物体,基于Maar的视觉理论,视觉先识别出局部显著性的区块比如边缘和角点,然后综合这些信息完成整体描述,人眼逆向工程最相像的是DPM模型. ...

  2. js document 触发按键事件

    // 键盘控制 var keyEvent = (function () { document.onkeydown = function (e) { if (e.keyCode === 38) { // ...

  3. HLPP算法 一种高效的网络最大流算法

    #include <algorithm> #include <cstdio> #include <cctype> #include <queue> #d ...

  4. [luogu2461 SDOI2008] 递归数列 (矩阵乘法)

    传送门 Description 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai- ...

  5. apache+php连接数据库

    ######## 安装APACHE ##############安装apr/usr/src/apache+php/tar xf apr-1.5.2.tar.gzcd apr-1.5.2./config ...

  6. Linux基础知识和命令

    1,用户登录:    root(管理员),权限最大.安全生产必要时再使用.    普通用户:权限有限.2,    终端终端设备终端:输入和输出设备,如:键盘鼠标显示器;     图形终端:虚拟机进入窗 ...

  7. 安装配置开源的laravel项目到本地环境

    前言 从https://github.com 上down了一个laravel项目安装到本地环境的时候,其中遇到一些问题,这里梳理并记录下整个流程. git上下载项目代码,部署laravel项目的时候会 ...

  8. python爬虫04 | 长江后浪推前浪,Reuqests库把urllib库拍在沙滩上

    最近 有些朋友 看完小帅b的文章之后 把小帅b的表情包都偷了 还在我的微信 疯狂发表情包嘚瑟 我就呵呵了 只能说一句 盘他 还有一些朋友 看完文章不点好看 还来催更 小帅b也只能说一句 继续盘他   ...

  9. NLTK学习笔记(五):分类和标注词汇

    目录 词性标注器 标注语料库 表示已经标注的标识符:nltk.tag.str2tuple('word/类型') 读取已经标注的语料库 名词.动词.形容词等 尝试找出每个名词类型中最频繁的名词 探索已经 ...

  10. Codeforces 919D Substring (拓扑图DP)

    手动博客搬家: 本文发表于20180716 10:53:12, 原地址https://blog.csdn.net/suncongbo/article/details/81061500 给定一个\(n\ ...