先写一下3这种遍历方法

for循环

List<Teacher> list = new ArrayList<>();
list.add(new Teacher("张三",21));
list.add(new Teacher("李四",28));
list.add(new Teacher("王五",18));
// for 循环
for(int i = 0;i<list.size();i++){
System.out.println(list.get(i));
}
// 增强for :foreach+补全
for (Object object : list) {
System.out.println(object);
}
// 迭代器ITerator, 这是集合特有的
Iterator it = list.iterator();
while(it.hasNext()){
Object next = it.next();
Teacher tea = (Teacher)next;
if(tea.getAge()<20){
it.remove();
System.out.println(tea);// 不合格学生
}
}

List 接口

  1. ArrayList 数组结构 这是list接口的主要实现类
  2. Vector 底层也是数组,线程安全,但效率较慢
  3. LinkedList 链表结构 查询效率慢,增删块

Set

特点:无序,无下标,不重复

set没有特有的方法,都是继承于父接口

底层是通过哈希计算得出内存的地址,如果地址不同则直接赋值,如果地址相同就在看内容。

相同对象,哈希值一定相同,不同对象哈希值可能相同

①HashSet 作为主要实现类

  1. 判断hashCode(是否相同,不同直接存储,当做不重复处理)
  2. 相同时,他才会进行equals比较内容,当内容相同了,不添加

②TreeSet 实现 自然排序

  • 要求:性价到该集合里的类必须支持排序
  • 必须要实现Comparable接口否则汇报类型转换异常
  • 实现Comparable接口 要重写CompareTO()方法,确定比较的依据

定制排序

  • 1.创建一个比较器

    •   comparetor  抽象方法
    •   compare
  • 在创建  TreeSet时
    •   通过有参构造把比较器对象穿进去

自然排序和定制排序比较:

定制排序的优先级高,而且和类结耦!!!

③LinkedHashSet

基于链表的结构  多维护一层添加顺序

Map

遍历:

  所有的key

      keySet() ==> Set 集合

  所有的value

      values() ==> Collection集合

  所有的键值对

      entrySet ==> Set 集合

      在得到键值对后  键值对的类型  Map.Entry 类型

        getKey() 获取该键值对的键

        

016_List/Set/Map的更多相关文章

  1. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  2. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  3. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. 多用多学之Java中的Set,List,Map

            很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...

  6. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  7. MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析

    在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...

  8. MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程

    在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...

  9. MapReduce剖析笔记之五:Map与Reduce任务分配过程

    在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...

随机推荐

  1. Future模式的学习以及JDK内置Future模式的源码分析

    并发程序设计之Future模式 一).使用Future模式的原因 当某一段程序提交了一个请求,期待得到一个答复,但服务程序对这个请求的处理可能很慢,在单线程的环境中,调用函数是同步的,必须等到服务程序 ...

  2. 标准库bufio个人详解

    本文是我有通俗的语言写的如果有误请指出. 先看bufio官方文档 https://studygolang.com/pkgdoc文档地址 主要分三部分Reader.Writer.Scanner 分别是读 ...

  3. JavaWeb04-JSP及会话跟踪技术

    JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的 ...

  4. devicemapper存储驱动下镜像的存储

    docker配置devicemapper存储驱动 #查看当前使用的存储驱动,默认为overlay docker info | grep -i storage #停止dockersystemctl st ...

  5. eNSP仿真软件之配置Trunk口

    实验原理 在以太网中,通过划分VLAN来隔离广播域和增强网络通信的安全性.以太网通常由多台交换机组成,为了使VLAN的数据帧跨越多台交换机传递,交换机之间互连的链路需要配置为干道链路(Trunk Li ...

  6. 【翻译】全球用尽IPv4的一点思考

    作者:Dimple 公众号:奔跑吧攻城狮 简介:专属于Java和Android开发,和你聊聊职场话题,一同展望未来 作为小小号主的我表示很无力啊,这几天,天天都是热点.前有网易员工勇敢发声维护自己的利 ...

  7. Hadoop之HDFS文件系统

    概念 HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色. HDFS的设计适合一次写入,多次读出的场景,且不 ...

  8. Spring与Shiro整合 登陆操作

    Spring与Shiro整合 登陆操作 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 编写登陆Controller方法  讲解: 首先,如果你登陆失败的时候,它会把你的异常信息丢到 ...

  9. vue 做一个简单的TodoList

    目录结构 index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  10. Java中的集合(Set,List,Map)

    ******************collections类总结*************************** JAVA集合主要分为三种类型:    Set(集)    List(列表)    ...