Java String equals() 方法 equals() 方法用于将字符串与指定的对象比较。 String 类中重写了 equals() 方法用于比较两个字符串的内容是否相等。 语法 public boolean equals(Object anObject) 参数anObject -- 与字符串进行比较的对象。 返回值 如果给定对象与字符串相等,则返回 true;否则返回 false ==比较运算符 用于基本数据类型的比较。 判断引用是否指向堆内存的同一块地址。 使用 == 和 equals() 比较字符串 String ...
.filter()的作用和用法 作用:用来过滤一些东西,对一个Stream的所有元素进行测试,不满足条件的元素就被过滤掉,剩下的元素构成了一个新的Stream Optional.ofNullable(o).filter(f -> f == “过滤的条件”).map(“不影响原来的集合进行输出”);
本文源码:GitHub·点这里 || GitEE·点这里 目录一、函数式概念二、函数与方法三、JDK函数基础1、Lambda表达式2、函数式接口四、Optional类1、Null判断2、Optional应用五、Stream流六、源代码地址 一、函数式概念 函数式编程是一种结构化编程的范式,主要思想是把运算过程尽量写成系列嵌套的函数调用。函数编程的概念表述带有很抽象的感觉,可以基于案例看: public class Function01 {public static void main(String[] args) {//...
/*** 消费型接口*/ public static void main(String[] args) {Consumer<Book> consumer = (x) -> System.out.println(x);Book book = new Book();book.setName("hlm");consumer.accept(book); }//方法参数 @Test public void test(){demo("asd",x-> System.out.println(x)); } // 创建方法 private void demo(String str,Consumer<String> consumer){consumer.accept(str); }/*** 供给型接口 Supplier<T>*/ @Test public void t...
package com.company;import java.io.Serializable;public class Config implements Serializable {public Config() {super();// TODO Auto-generated constructor stub}private String greetingWord;private long times;private String [] ss=new String[]{"1","2"};public String getGreetingWord() {return greetingWord;}public void setGreetingWord(String greetingWord) {this.greetingWord = greetingWord;}public long ge...
java中居然还有回调函数,学习了一下...简单了解:首先一个接口Callback定义方法a(),A类实现Callback接口,然后在A类中调用B类的b()方法,在b()方法中调用a()方法其中Callback接口是你自己定义的接口在公司写代码的时候,当碰到一些场景就可以使用这种回调函数去处理,保证只有你自己看得懂,提高了自己的核心竞争力!!!
1 lambda依赖上下文 1.1 测试lambda表达式public class Test3 {public static void main(String[] args) {TheInterface1 t1 = () -> {};TheInterface2 t2 = () -> {};System.out.println(t1.getClass().getInterfaces()[0]);System.out.println(t2.getClass().getInterfaces()[0]);} }@FunctionalInterface interface TheInterface1{void myMethod1(); }interface TheInterface2{void myMethod2(); }lambda表达式依赖于上下文。是个...
在本系列的上一篇文章中对Java 平台提供的 Lambda 表达式和流做了介绍。受限于 Java 标准库的通用性要求和二进制文件大小,Java 标准库对函数式编程的 API 支持相对比较有限。函数的声明只提供了 Function 和 BiFunction 两种,流上所支持的操作的数量也较少。为了更好地进行函数式编程,我们需要第三方库的支持。Vavr 是 Java 平台上函数式编程库中的佼佼者。Vavr这个名字对很多开发人员可能比较陌生。它的前身 Javaslang 可能更...
在本系列的前两篇文章中,已经对函数式编程的思想和函数式编程的重要概念做了介绍。本文将介绍 Java 平台本身对函数式编程的支持,着重介绍 Lambda 表达式和流(Stream)。Lambda 表达式当提到Java 8 的时候,Lambda 表达式总是第一个提到的新特性。Lambda 表达式把函数式编程风格引入到了 Java 平台上,可以极大的提高 Java 开发人员的效率。这也是 Java 社区期待已久的功能,已经有很多的文章和图书讨论过 Lambda 表达式。本文...
本系列的上一篇文章对函数式编程思想进行了概述,本文将系统地介绍函数式编程中的常见概念。这些概念对大多数开发人员来说可能并不陌生,在日常的编程实践中也比较常见。函数式编程范式的意义在众多的编程范式中,大多数开发人员比较熟悉的是面向对象编程范式。一方面是由于面向对象编程语言比较流行,与之相关的资源比较丰富;另外一方面是由于大部分学校和培训机构的课程设置,都选择流行的面向对象编程语言。面向对象编程范式的...
前言在讨论函数式编程(FunctionalProgramming)的具体内容之前,我们首先看一下函数式编程的含义。在维基百科上,函数式编程的定义如下:"函数式编程是一种编程范式。它把计算当成是数学函数的求值,从而避免改变状态和使用可变数据。它是一种声明式的编程范式,通过表达式和声明而不是语句来编程。"(见 Functional Programming)函数式编程的思想在软件开发领域由来已久。在众多的编程范式中,函数式编程虽然出现的时间很长,但...
函数管道和 Stream API我们使用 Stream 在 Java? 中构建函数管道。在函数式代码中使用 Stream 有 3 个好处:Stream 简洁、富于表达、非常优雅,而且代码读起来就像是问题陈述。Stream 采用了惰性计算,这使得它在您的程序中非常高效。它可以并行使用。在本系列中,您已详细了解了优雅和简洁的代码的好处。在本文中,我们将重点介绍其他两个好处。效率是您在使用函数管道时寻求的主要好处之一,所以我们首先从这里开始介绍。惰性计算...
lambda 表达式的类型是什么?一些语言使用函数值或函数对象来表示 lambda 表达式,但 Java? 语言没有这么做。Java 使用函数接口来表示 lambda 表达式类型。乍一看似乎有点奇怪,但事实上这是一种确保对 Java 语言旧版本的向后兼容性的有效途径。您应该非常熟悉下面这段代码:Thread thread = new Thread(new Runnable() { public void run() { System.out.println("In another thread"); }}); thread.start(); System.out.pri...
函数式编程(函数式接口):一个接口只包含一个方法实现 public interface Lambda{void method(); }// 调用Lambda lambda = new Lambda(){};Lambda lambda1 = () - >{};Lambda lambda2 = () ->xxx;Function接口,一个参数对应一个返回值 Supplier 一个输出 Consumer一个输入 BiFuction 两个输入一个输出 BiConsumer 两个输入 方法引用静态方法引用 类名::staticMethod, lambda:(args) ——>类名.staticMethod(args);实例方法引用...
874. 筛法求欧拉函数 ①. 题目②. 思路③. 学习点④. 代码实现原题链接①. 题目②. 思路欧拉函数是一个 积性函数 就是说 m,n互素 则 φ(mn)=φ(m)?φ(n)①若该数是质数p的话,那么该数的欧拉函数就是p?1。② 筛法利用的原理是 任意整数 x 的倍数 2x,3x,… 等都不是质数 ,但是即便如此也会有重复标记的现象,例如12既会被2又会被3标记,在标记2的倍数时,12=6?2 ,在标记3的倍数时,12=4?3 ,根本原因是没有找到唯一产生12的方式...