Map

遍历Map集合
//方法一
//获得所有的键的Set集合
Set<Object> set = map.ketSet();
for(Object key : set){//根据具体的键获得具体的值Object value = map.get(key);
}
//方法二
//获得所有的键值对对象集合
Set<Map.Entry<Object, Object>> entrySet = map.entrySet();
for(Map.Entry<Object, Object>> entry : entrySet){entry.getKey();//获取该键值对对象的键entry.getValue();//获取该键值对对象的值
}
//方法三
map.forEach((key,value) -> {//其原理仍然是第二种遍历方式
});
HashMap

HashMap底层是hash表

  1. key.hashCode() =>确定索引
  2. key.equals(其它元素)
    • 没有相等的,添加
    • 如果有相等的,覆盖
TreeMap

TreeMap底层是红黑树

  1. 以key为依据判断节点在树中的位置
  2. key要么实现自然排序或TreeMap提供比较器

使用TreeMap必须要提供排序方式,当自然排序和比较器排序都提供了时,以比较器为准

HashMap和TreeMap插入和遍历顺序都不一致,如果想要一致可以选择LinkedHashMap

可变参数

public void 方法名(参数类型...变量名){}
  • 可变参数要放在参数列表中最后一位

  • 一个方法的参数类表中只能有一个可变参数

  • 如果可变参数的方法与其他方法发生重载,那么其他方法的执行优先于可变参数的执行

不可变集合

不可变集合是JDK1.9才有的

List.of
Set.of
Map.of
//JDK1.9之前的操作方法
//不可变集合
List<Integer> list = Arrays.asList(1,2,3);
//把不可变集合的元素批量加入到可变集合中
ArrayList<Integer> list = new ArrayList<>(integers);

Stream

Stream流: - 生成流 - 执行中间操作(转换操作) - 执行终结操作

转换方法
  • filter : 过滤, 接收一个Lambda表达式,参数代表集合的元素,返回值是布尔类型,true表示留下,false表示过滤掉
  • map : 转换 接收一个Lambda表达式,参数列表是集合中的每一个元素,(x -> x * 2)按照规则,将元素转化成另一个元素
  • skip : 跳过集合中前面几个元素
  • limit : 可以获取到流中的前n个元素
  • distinct : 去重,去除流中重复的元素
  • concat : 合并,将两个流合并为一个流
  • sorted() : 采用自然排序法
  • sorted(比较器) : 采用比较器排序,((a, b)->比较规则 返回一个int})
终结方法
  • forEach(Consumer) : 可传入Lambda表达式, ( x -> 进行消费处理)

  • count :

    //纯数字流在终结方法中多了一些跟数字有关的运算
    System.out.println(IntStream.range(0, 10).sum());//获取从0-9的和
    System.out.println(IntStream.range(0, 10).max().getAsInt());//获取从0-9中最大的数据
    System.out.println(IntStream.range(0, 10).min().getAsInt());//获取从0-9中最小的数据
    System.out.ptintln(IntStream.range(0, 10).average().getAsDouble());//获取从0-9之间的平均值
    
    1. 使用流修改数据后,不会影响原始数据
    2. 流一旦调用了终结方法,就不能调用其他方法了,否则会出现IllegalStateException(非法状态异常)

Map集合以及Map集合的实现类Stream流的使用相关推荐

  1. 24.1 传统集合的多步遍历代码、Stream流更优写法与stream、forEach、filter、count、limit、skip、concat方法、静态方法:tream.of()

    目录 1 传统集合的多步遍历代码 2 Stream的更优写法 3 Stream流 3.1 Stream流:获取流 列:单列集合.双列集合.数组获取stream流 3.2 Stream流中的常用方法:f ...

  2. Map集合简单了解(水一章 明天Stream流)

    Map     Map集合的概述和使用     双列集合一次可以存两个元素  左边称为键,唯一的,右边称为值,可以重复的.对应的关系,称之为键值对     Interface Map<K,V&g ...

  3. Map集合、Stream流、File类、递归

    一,JDK8新特性:Stream 1,认识Stream 也叫Stream流,是jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据. 优势: Stre ...

  4. Java SE基础知识详解第[13]期—不可变集合、Stream流、异常

    写在前面: 每一个不曾起舞的日子,都是对生命的辜负. 希望看到这里的每一个人都能努力学习,不负韶华,成就更好的自己. 以下仅是个人学习过程中的一些想法与感悟,Java知识博大精深,作为初学者,个人能力 ...

  5. 黑马笔记---创建不可变集合与Stream流

    目录 1.不可变集合 1.1什么是不可变集合? 1.2如何创建不可变集合? 总结: 2.Stream流 2.1Stream流的概述 什么是Stream流? 案例:Stream流的作用 Stream流式 ...

  6. JavaSE基础笔记——不可变集合简介、Stream流体系、异常处理

    1.不可变集合简介 不可变集合,就是不可被修改的集合. 集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变.否则报错. 为什么要创建不可变集合? 如果某个数据不能被修改,把它防御性地拷贝到不 ...

  7. 不可变集合 Stream流 异常

    目录 创建不可变集合 如何创建不可变集合? Stream流 Stream流的概述 Stream流的获取 Stream流的常用API Stream流的综合应用 收集Stream流 异常处理 异常概述.体 ...

  8. java(九)-方法引用, Stream流,File类 , 递归 ,字节流

    day09[方法引用.Lambda表达式.Stream流] 今日目标 线程状态 等待与唤醒 Lambda表达式 Stream流 教学目标 能够说出线程6个状态的名称 能够理解等待唤醒案例 能够掌握La ...

  9. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

最新文章

  1. javaweb学习总结(三十四)——使用JDBC处理MySQL大数据
  2. P1582 倒水(二进制)
  3. 搞嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
  4. 这个回答让我错失offer!offer拿到手软
  5. ruby 变量类中范围_Ruby中的类
  6. 代码实现tan graph model for classification_几行代码搞定ML模型,低代码机器学习Python库正式开源...
  7. ArcGIS API for Silverlight开发入门准备
  8. html5鼠标讯听,HTML5 随鼠标移动而变化的低频信号发生器
  9. 实验2-4-3 求平方根序列前N项和 (C语言)
  10. zbb20170607 svn SVN服务器搭建和使用
  11. 计算机组成原理第六版课后答案第五章答案,第五章 计算机组成原理习题答案6.doc...
  12. LoRa协议在Arduino上的应用——原理及代码分析(二)
  13. Sniffer和网络执法官软件助你维护网络
  14. vue3 composition API
  15. 基于VisMockup装配公差分析技术(VisVSA)的介绍
  16. python爬虫工资高吗_月薪2万的爬虫工程师,Python需要学到什么程度?
  17. java中feli删除操作_Feli的生日礼物
  18. 程序员月薪一万二在北京的真实生活!
  19. 中国红客联盟宣布解散:高层“内讧”,创始人和法人公开“互撕”!
  20. [NLP]Attention机制与self-Attention机制

热门文章

  1. 小白兔卖菜是计算机作文,白兔的菜作文
  2. Java树形菜单的构建、遍历以及获取树形菜单的Id集合List
  3. 为什么找不到AppData、Default、ProgramData文件
  4. 【MATLAB教程案例26】图像特征点提取算法matlab仿真与分析——sift,surf,kaze,corner,BRISK等
  5. php字符串加加运算,php 学习笔记
  6. 微信公众号身份证OCR识别和验真|人证比对
  7. mysql中select使用方法,MySQL中select语句介绍及使用示例
  8. 使用wangEditor富文本编辑器遇到的问题总结
  9. Jzoj5450【NOIP2017提高A组冲刺11.4】Neutral
  10. (1)WireShark