java8之lambda表达式(1)-基本语法
- class Student{
- private String name;
- private Double score;
- public Student(String name, Double score) {
- this.name = name;
- this.score = score;
- }
- public String getName() {
- return name;
- }
- public Double getScore() {
- return score;
- }
- public void setName(String name) {
- this.name = name;
- }
- public void setScore(Double score) {
- this.score = score;
- }
- @Override
- public String toString() {
- return "{"
- + "\"name\":\"" + name + "\""
- + ", \"score\":\"" + score + "\""
- + "}";
- }
- }
- @Test
- public void test1(){
- List<Student> studentList = new ArrayList<Student>(){
- {
- add(new Student("stu1",100.0));
- add(new Student("stu2",97.0));
- add(new Student("stu3",96.0));
- add(new Student("stu4",95.0));
- }
- };
- Collections.sort(studentList, new Comparator<Student>() {
- @Override
- public int compare(Student o1, Student o2) {
- return Double.compare(o1.getScore(),o2.getScore());
- }
- });
- System.out.println(studentList);
- }
- @FunctionalInterface
- public interface Comparator<T> {
- int compare(T o1, T o2);
- }
- public void test1_(){
- List<Student> studentList = new ArrayList<Student>(){
- {
- add(new Student("stu1",100.0));
- add(new Student("stu2",97.0));
- add(new Student("stu3",96.0));
- add(new Student("stu4",95.0));
- }
- };
- Collections.sort(studentList,(s1,s2)-> Double.compare(s1.getScore(),s2.getScore()));
- System.out.println(studentList);
- }
- public void testThread(){
- new Thread(new Runnable() {
- @Override
- public void run() {
- System.out.println("hello, i am thread!");
- }
- }).start();
- }
- @FunctionalInterface
- public interface Runnable {
- /**
- * When an object implementing interface <code>Runnable</code> is used
- * to create a thread, starting the thread causes the object's
- * <code>run</code> method to be called in that separately executing
- * thread.
- * <p>
- * The general contract of the method <code>run</code> is that it may
- * take any action whatsoever.
- *
- * @see java.lang.Thread#run()
- */
- public abstract void run();
- }
- public void testThread_(){
- new Thread(()-> System.out.println("hello, i am thread!")).start();
- }
- @FunctionalInterface
- public interface MyFunctionalInterface {
- public void single(String msg);
- }
- /**
- * 需要单个参数
- */
- public static void testOnePar(MyFunctionalInterface myFunctionalInterface){
- myFunctionalInterface.single("msg");
- }
- /**
- * 一个参数,可以省略参数的括号
- */
- @Test
- public void testOneParameter(){
- testOnePar(x-> System.out.println(x));
- }

- /**
- * 需要单个参数
- */
- public static void testOnePar1(Consumer unaryOperator){
- unaryOperator.accept("msg");
- }
java8之lambda表达式(1)-基本语法的更多相关文章
- Java8之lambda表达式
一.什么是lambda表达式? Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码 ...
- Java8中Lambda表达式的10个例子
Java8中Lambda表达式的10个例子 例1 用Lambda表达式实现Runnable接口 //Before Java 8: new Thread(new Runnable() { @Overri ...
- java8的lambda表达式,将List<DTO> 转为 List<DO>
将List<PhoneDTO>转为List<PhoneDO>,通过java8的lambda表达式来操作,比传统的for循环精简很多: /** * List<PhoneDT ...
- java8的lambda表达式
关于java8的lambda表达式 lambda表达式一般用于接口,因为lambda表达式是函数式编程. 1.有且仅有一个抽象方法被称为函数式接口,函数式接口可以显示的被@FunctionalInte ...
- java8中lambda表达式的应用,以及一些泛型相关
语法部分就不写了,我们直接抛出一个实际问题,看看java8的这些新特性究竟能给我们带来哪些便利 顺带用到一些泛型编程,一切都是为了简化代码 场景: 一个数据类,用于记录职工信息 public clas ...
- java8之lambda表达式入门
1.基本介绍 lambda表达式,即带有参数的表达式,为了更清晰地理解lambda表达式,先上代码: 1.1 两种方式的对比 1.1.1 方式1-匿名内部类 class Student{ privat ...
- JAVA8之lambda表达式具体解释,及stream中的lambda使用
前言: 本人也是学习lambda不久,可能有些地方描写叙述有误,还请大家谅解及指正! lambda表达式具体解释 一.问题 1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.l ...
- 十分钟学会Java8的lambda表达式和Stream API
01:前言一直在用JDK8 ,却从未用过Stream,为了对数组或集合进行一些排序.过滤或数据处理,只会写for循环或者foreach,这就是我曾经的一个写照. 刚开始写写是打基础,但写的多了,各种乏 ...
- java8中Lambda表达式和Stream API
一.Lambda表达式 1.语法格式 Lambda是匿名函数,可以传递代码.使用“->”操作符,改操作符将lambda分成两部分: 左侧:指定了 Lambda 表达式需要的所有参数 右侧:指定了 ...
随机推荐
- spring注解一次 清除多个缓存
@Caching(evict = { @CacheEvict(value="cacheName",key="#info.id+'_baojia'",before ...
- jquery获得表格可见行的大小数量
alert($("#tableId").find("tbody tr[moban='true']").find(":visible").si ...
- 一些css书写的小技巧
一.css顺序 首先声明,浏览器读取css的方式是从上到下的.我们一般书写css只要元素具备这些属性就会达到我们预期的效果,但是这会给以后的维护和浏览器的渲染效率带来一定的影响,那么该怎么书写css的 ...
- html模板中的数字保留两位小数
<script> //html模板中的数字保留两位小数 function formatCurrency(num) { num = num.toString().replace(/\$|\, ...
- jQuery 评分插件(转)
评分效果的小插件jQuery Raty.它提供的API相当丰富真的是让人爱不释手.详细文档及下载插件请移步这里. 基本使用 下面我们来实际操作,运用一下这个有爱的小插件. 需要做的事情非常简单,在页面 ...
- webpackage 2.x 使用
webpackage 2.x 使用 安装---(在项目目录下) //1.初始化npm的配置(添加package.json) npm init //2.安装 webpackage npm install ...
- 【ESP8266】发送HTTP请求
一.ESP8266简介 ESP8266 是深圳安信可科技有限公司开发的基于乐鑫ESP8266的超低功耗的UART-WIFI模块的模组,可以方便进行二次元开发,接入云端服务,实现手机3/4G全球随时随地 ...
- 闭包JS
一句话概括的话:闭包就是一个函数,捕获作用域内的外部绑定. 官方的定义:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因为这些变量也称为该表达式的一部分. 自由变量和闭包的关系:自 ...
- iOS 实现类似QQ分组样式的几种方式
思路 思路很简单,对模型数据操作或则控制界面显示 先看下json部分数据 "chapterDtoList": [{ "token": null, "i ...
- 51nod_1661: 黑板上的游戏(sg函数 找规律)
题目链接 先打一个sg函数的表,找找规律,发现sg函数可以递归求解 打表代码如下 #include<bits/stdc++.h> using namespace std; typedef ...