先写一下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. windows系统两个网卡如何同时使用?内网和外网共用,配置教程

    有些企业的网络分为内网和外网,一般内网不能访问Internet,但是又不提供外网,自己有上外网的需求,所以可能会用到双网卡,无线网卡+有线网卡或者有线+有线... 本文就是为了解决此问题,主要的做法就 ...

  2. Flutter学习笔记(30)--Android原生与Flutter混编

    如需转载,请注明出处:Flutter学习笔记(30)--Android原生与Flutter混编 这篇文章旨在学习如何在现有的Android原生项目上集成Flutter,实现Android与Flutte ...

  3. 微信小程序 + thinkjs + mongoDB 实现简单的前后端交互

    说明:这段时间跟老师学习了一下mongodb数据库,这次也是第一次搭建后台服务,出了不少差错,特此来复盘一下,非常感谢对我提供帮助的同学~ 一.使用 thinkjs + mongodb 创建后台服务 ...

  4. sign in with apple后端校验(java)

    最近新开发的ios平台的app在提审的时候,被拒了,原因是app上如果有接第三方登陆(比如,微信,微博,facebook等),那就必须要接apple id登陆,坑爹~苹果霸权啊!然而没办法,靠他吃饭, ...

  5. Java程序在内存中运行详解

    目录 Java程序在内存中运行详解 一.JVM的内存分布 二.程序执行的过程 三.只有一个对象时的内存图 四.两个对象使用同一个方法的内存图 五.两个引用指向同一个对象的内存图 六.使用对象类型作为方 ...

  6. [CSS七分钟系列]都1902年了,还不知道用margin:auto给flex容器内元素分组?

    最近看到几篇博文讲解margin:auto在flex容器中的使用,可惜的是大多讲解都浮于页面表现,没深究其中的作用机理,本文在此浅薄对其表现机理做简单探讨. 引子 日常业务迭代过程中,flex已经是前 ...

  7. U盘安装centos 7 提示 “Warning: /dev/root does not exist

    背景介绍:公司需要使用台式机安装Centos 7.5 系统,来部署一个测试的数据库,在安装Centos 7.5 系统的时候,使用U启安装,但有问题. 提示信息如下 如图:安装centos 7时提示 & ...

  8. java switch语句 要点注意

    1.格式 switch(表达式){ case 常量1:语句1:break: case 常量2:语句2:break: case 常量3:语句3:break: .... case 常量n:语句n:brea ...

  9. linux下svn服务器端的操作

    1.停止svn服务器端: [root@ www]# ps -ef|grep svnroot 21698 1 0 09:55 ? 00:00:00 svnserve -d -r /www/svn/roo ...

  10. springboot+微信小程序实现微信支付【统一下单】

    说明: 1)微信支付必须有营业执照才可以申请 2)微信支付官方api是全套的,我这是抽取其中的统一下单api,做了一个简单的封装 首先看看微信支付 商户系统和微信支付系统主要交互: 1.小程序内调用登 ...