问题:Java面试知识点:红黑树、Stream流

答案:

1.红黑树

红黑树
  • 平衡二叉B树
  • 每一个节点可以是红或者黑
  • 红黑树不是高度平衡的,它的平衡是通过“自己的红黑规则”进行实现的

2.Stream流


Stream流的常见中间操作方法
 • Stream<T> limit(long maxSize) : 截取指定参数个数的数据
 • Stream<T> skip(long n):跳过指定参数个数的数据
 • static <T> Stream<T> concat(Stream a, Stream b):合并a和b两个流为一个流
 • Stream<T> distinct() :去除流中重复的元素。依赖(hashCode和equals方法)

在流中无法直接修改数据源中的数据。

代码如下:


public class test15Stream {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("杨大大");list.add("恒大大");//        Stream<String> stream=list.stream();
//        stream.forEach(s-> System.out.println(s));list.stream().forEach(s-> System.out.println(s));HashMap<String,Integer> map=new HashMap<>();map.put("杨大大",22);map.put("恒大大",22);Set<String> keySet = map.keySet();keySet.stream().forEach(s-> System.out.println(s));Set<Map.Entry<String, Integer>> entries = map.entrySet();entries.stream().forEach(s-> System.out.println(s));int[] arr={1,2};Arrays.stream(arr).forEach(s-> System.out.println(s));Stream.of(1,2).forEach(s-> System.out.println(s));list.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {boolean b = s.startsWith("杨");return b;}}).forEach(s-> System.out.println(s));list.stream().filter(s->{boolean b = s.startsWith("杨");return b;}).forEach(s-> System.out.println(s));list.stream().filter(s->s.startsWith("杨")).forEach(s-> System.out.println(s));list.stream().limit(2).forEach(s-> System.out.println(s));list.stream().skip(1).forEach(s-> System.out.println(s));}
}

public class test16Stream {public static void main(String[] args) {ArrayList<String> list=new ArrayList<>();list.add("杨大大");list.add("恒大大");Stream.of(1,2).forEach(s-> System.out.println(s));list.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {boolean b = s.startsWith("杨");return b;}}).forEach(s-> System.out.println(s));list.stream().filter(s->{boolean b = s.startsWith("杨");return b;}).forEach(s-> System.out.println(s));list.stream().filter(s->s.startsWith("杨")).forEach(s-> System.out.println(s));list.stream().limit(2).forEach(s-> System.out.println(s));list.stream().skip(1).forEach(s-> System.out.println(s));ArrayList<String> list1=new ArrayList<>();list1.add("杨大大");list1.add("恒大大");Stream.concat(list.stream(),list1.stream()).forEach(s-> System.out.println(s));list1.add("恒大大");//forEach方法的底层,会循环获取到流中的每一个数据,//并循环调用accept方法,并把每一个数据传递给accept方法//s就依次表示了流中的每一个数据,//所以,我们只要在accept方法中,写上处理的业务逻辑就可以了。list1.stream().distinct().forEach(s-> System.out.println(s));long count = list1.stream().count();System.out.println(count);}
}

public class test17Stream {public static void main(String[] args) {ArrayList<Integer> list=new ArrayList<>();for (int i = 1; i <= 10; i++) {list.add(i);}list.stream().filter(new Predicate<Integer>() {@Overridepublic boolean test(Integer integer) {return integer%2==0;}}).forEach(s-> System.out.println(s));list.stream().filter(integer -> integer%2==0).forEach(s-> System.out.println(s));List<Integer> collect = list.stream().filter(integer -> integer % 2 == 0).collect(Collectors.toList());System.out.println(collect);Set<Integer> collect1 = list.stream().filter(integer -> integer % 2 == 0).collect(Collectors.toSet());System.out.println(collect1);}
}

public class Actor {private String name;@Overridepublic String toString() {return "Actor{" +"name='" + name + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public Actor(String name) {this.name = name;}public Actor() {}
}public class test18Stream {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();list.add("杨大大,22");list.add("恒大大,23");Map<String, Integer> collect = list.stream().filter(s -> {String[] split = s.split(",");if (Integer.parseInt(split[1]) > 22) {return true;};return false;}).collect(Collectors.toMap((String s) -> {return s.split(",")[0];},(String s) -> {return Integer.parseInt(s.split(",")[1]);}));System.out.println(collect);ArrayList<String> actors=new ArrayList<>();actors.add("杨洋");actors.add("李易峰");actors.add("易烊千玺");actors.add("胡歌");ArrayList<String> actors1=new ArrayList<>();actors1.add("杨幂");actors1.add("杨紫");actors1.add("杨颖");actors1.add("迪丽热巴");Stream<String> stream = actors.stream().filter(s -> s.length() == 3).limit(2);Stream<String> stream1 = actors1.stream().filter(s -> s.startsWith("杨")).skip(1);Stream.concat(stream,stream1).forEach(name->{Actor actor=new Actor(name);System.out.println(actor);});}
}

Java面试知识点:红黑树、Stream流相关推荐

  1. 跟我学 Java 8 新特性之 Stream 流(二)关键知识点

    转载自   跟我学 Java 8 新特性之 Stream 流(二)关键知识点 我们的第一篇文章,主要是通过一个Demo,让大家体验了一下使用流API的那种酣畅淋漓的感觉.如果你没有实践,我还是再次呼吁 ...

  2. Java面试知识点:File、IO流

    问题:Java面试知识点:File.IO流 答案: 1.File listFiles方法注意事项: • 当调用者不存在时,返回null • 当调用者是一个文件时,返回null • 当调用者是一个空文件 ...

  3. 2019年秋招 Java 面试知识点梳理(高频问题)

    Java 面试知识点梳理 基础一 JVM-内存区域分配 HotSpot 对象创建 JVM-类加载机制 JVM-内存分配(堆上的内存分配) JVM-GC回收机制 JVM-垃圾收集器 JVM指令重排序 重 ...

  4. Java面试知识点:集合、Set、泛型、HashSet、HashMap

    Java面试知识点:集合.Set.泛型.HashSet.HashMap 答案: 1.集合  集合和数组的对比小结      1,数组的长度是不可变的,集合的长度是可变的.      2 ,数组可以存 ...

  5. 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局

    转载自   跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局 恭喜你们,马上就要学完Java8 Stream流的一整系列了,其实我相信Stream流对很多使用Java的同 ...

  6. 跟我学 Java 8 新特性之 Stream 流(三)缩减操作

    转载自   跟我学 Java 8 新特性之 Stream 流(三)缩减操作 和前面两篇文章一起服用,效果会更佳.通过对流API的基础体验Demo和关键知识点的讲解,相信大家对流API都有一定的认识了, ...

  7. 跟我学 Java 8 新特性之 Stream 流(四)并行流

    转载自   跟我学 Java 8 新特性之 Stream 流(四)并行流 随着对流API认识的慢慢深入,本章我们要讨论的知识点是流API里面的并行流了. 在开始讨论并行流之前,我先引发一下大家的思考, ...

  8. Java 面试知识点解析——网络协议篇

    Java 面试知识点解析--网络协议篇 前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 ...

  9. Java面试知识点(全)- Java面试基础部分一

    Java面试知识点(全) :https://nanxiang.blog.csdn.net/article/details/130640392 Java基础 语法基础 面向对象 封装 利用抽象数据类型将 ...

最新文章

  1. [3D]绘制XYZ小坐标轴
  2. win8 C盘空间不足的几种解决方法
  3. json_decode的结果为null,json_encode的结果为
  4. POJ - 2516 Minimum Cost(最小费用最大流)
  5. 与众不同 制作会唱歌的WinRAR - imsoft.cnblogs
  6. android beta项目官方页面,安卓7.0开发者预览版如何安装?Android Beta项目正式上线...
  7. 高校寒假时间公布!看完心态稳住…
  8. 第一次更名为OpenInfra的“她”,给我们带来了哪些惊喜?| 技术头条
  9. 关于matlab的问题,关于MATLAB的一些基础问题
  10. 运维部门工作总结_运维工作个人工作总结范文
  11. Tews Technologies TPMC871 PCMCIA PMC 接口模块
  12. ORACLE sql 高级查询
  13. Cruise的API简介--Properties篇
  14. docker的部署及使用
  15. Monkey King-左偏树
  16. 多目标优化拥挤距离计算
  17. 【自动驾驶】超声波雷达障碍物检测
  18. LaTeX——命令注释
  19. 【PySpark】<Big Data>Spark概述
  20. Openxml的使用配合mupdf的识别生成word(一)

热门文章

  1. 嵌入生活的嵌入式,超市里的电子价签
  2. 华为海选开发者状元?还送14件豪礼?
  3. ubuntu 12.04 samba 服务器搭建
  4. div为空的时候 浮动没有效果_3种CSS清除浮动的方法
  5. 表格字体缩小 php_如何快速找出两个Excel表格不同的地方?
  6. 【Pytorch神经网络实战案例】17 带W散度的WGAN-div模型生成Fashon-MNST模拟数据
  7. recover 没有捕获异常_defer + recover 捕获所有异常
  8. Promise学习笔记
  9. LeetCode 2181. 合并零之间的节点(链表)
  10. LeetCode LCS 03. 主题空间(广度优先搜索BFS)