lambda表达式的一些学习
关于lambda表达式的一些学习,例举出来。
1.学生实体类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public Student setName(String name) {
this.name = name;
return this;
}
public int getAge() {
return age;
}
public Student setAge(int age) {
this.age = age;
return this;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
2.操作对象有关的方法
public class Test {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
for (int i = 0; i < 4; i++) {
list.add(new Student().setAge(i + 10).setName("yiqq" + i));
}
//直接返回对象
Student student = list.stream().filter(a -> "yiqq0".equals(a.getName())).findFirst().orElse(null);
System.out.println(student);
//返回Optional
Optional<Student> firstA = list.stream().filter(a -> "yiqq0".equals(a.getName())).findFirst();
Student stu = firstA.orElse(null);
System.out.println(stu);
//获取对象
if (firstA.isPresent()) {
Student stus = firstA.get();
System.out.println(stus);
}
//返回集合
List<Student> studentList = list.stream().filter(a -> "yiqq0".equals(a.getName())).collect(Collectors.toList());
System.out.println(studentList);
//取对象中所有的id的集合
List<Integer> integerList = list.stream().map(Student::getAge).distinct().collect(Collectors.toList());//distinct去重
System.out.println(integerList);
}
}
3.lambda表达式的一些用法
public class TestL {
public static void main(String[] args) {
String[] atp = {"00006", "00002","00001","00005","00004", "00003"};
Arrays.sort(atp, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return (s1.compareTo(s2));
}
});
Arrays.sort(atp, (String s1, String s2) -> (s1.compareTo(s2)));//Lambdas排序集合
List<String> players = Arrays.asList(atp);//数组转list集合
String [] array = players.toArray(new String[0]);//list集合转数组
System.out.println(Arrays.toString(array));//数组转化为string输出
// 以前的循环方式
for (String player : players) {
System.out.print(player + "; ");
}
// 使用 lambda 表达式以及函数操作(functional operation)
players.forEach((player) -> System.out.print(player + "; "));
// 在 Java 8 中使用双冒号操作符(double colon operator)
players.forEach(System.out::println);
}
}
lambda表达式的一些学习的更多相关文章
- 关于lambda表达式的一些学习——基于谓词筛选值序列
今天看了一些关于lambda表达式的知识,然后对于Func<T,TResult>泛型委托不太熟悉,便查了查相关资料,又引出来了基于谓词筛选值序列这个对我来说的新鲜知识点,于是去查MSDN, ...
- C# 委托、Lambda表达式和事件——学习总结
1.概括 1.1.委托是寻址方法的.NET版本,类似C++中的指针.委托可以理解成指向函数的指针,它是类型安全的,定义了具体的参数和返回值. ——定义一个委托,实际上是定义一个类.委托是对方法的引用, ...
- Lambda表达式和Java集合框架
本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...
- C++雾中风景8:Lambda表达式
上一篇C++的博客是Long Long ago了,前文讲到在看Lambda表达式的内容.笔者首次接触Lambda表达式应该是学习Python语言的时候,当时也不太明白这种表达方式的精髓,后续接触了Sc ...
- 24.C# Lambda表达式
1.Lambda表达式的含义 Lambda表达式是C#3.0引入的一种结构,使用它可以简化C#编程. 2.Lambda表达式与匿名方法 我们知道匿名方法可用于事件处理,如下delegate声明了一个匿 ...
- java8新特性——Lambda表达式
上文中简单介绍了一下java8得一些新特性,与优点,也是为本次学习java8新特性制定一个学习的方向,后面几篇会根据上文中得新特性一一展开学习.本文就从java8新特性中比较重要的Lambda表达式开 ...
- java8(一)Lambda表达式
其实很久前已经学习过了Lambda表达式,但是学习后没有多少使用的机会,久而久之也就忘记(惭愧).最近新的项目用的jdk8所以准备再学习一次,写下文章也是为了记录,方便以后再忘的时候,不用到处找资料( ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式
引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...
随机推荐
- JavaWeb配置详解(结合框架SpringMVC)
详解 先说一说常识性的东西,我们的JavaWeb程序运行一开始走的是web.xml文件,这是我们的核心文件,可以说没有web.xml文件我们就无法运行项目,这个文件长什么样子,读者自己新建一个web项 ...
- laravel新项目报错 No application encryption key has been specified.
解决办法, 若文件根目录下没有 .env 1..env.example 改名使用命令 copy 修改为 .env 2.使用命令 php artisan key:generate 获取密码,自动保存到 ...
- 笑谈CSS的伪元素
今晚上我们来简单的聊一聊CSS的伪元素,多说无益,开聊 GG: 话说盘古开天辟地之时. QQ:嗨,咱今天还能讲的完吗?您给来点实际的啊. GG:要听实际的是吧,得嘞,那今天咱就来聊一聊CSS里的伪元素 ...
- web项目jsp中无法引入js问题
https://blog.csdn.net/C1042135353/article/details/80274685#commentBox 这篇文章超赞的,几个小时的时间看了这篇文章豁然开朗,瞬间懂了 ...
- Go-json解码到结构体
废话不多说,直接干就得了,上代码 package main import ( "encoding/json" "fmt" ) type IT struct { ...
- ALTER TABLE permission is required on the target table of a bulk copy operation if the table has triggers or check constraints, but 'FIRE_TRIGGERS' or 'CHECK_CONSTRAINTS' bulk hints are not specified
这个是使用SqlBulkCopy进行批量复制导致的异常,此问题涉及大容量导入数据时,控制大容量导入操作是否执行(触发)触发器.大容量导入操作应只对包含支持多行插入的 INSERT 和 INSTEAD ...
- go 学习笔记之是否支持以及如何实现继承
熟悉面向对象的小伙伴们可能会知道封装,继承和多态是最主要的特性,为什么前辈们会如此看重这三种特性,真的那么重要吗? 什么是封装 什么是封装,封装有什么好处以及怎么实现封装? 相信大多数小伙伴们都有自己 ...
- 第一个基于ArcGIS的Android应用
使用Android Studio创建第一个工程 打开Android Studio,新建工程.在Application name处填写项目名称,company domain是公司地址,将来作为包名,点 ...
- react native Android支持gif和WebP动图
在项目android/app/build.gradle的文件中找到dependencies 支持gif动图加入: implementation 'com.facebook.fresco:animate ...
- HDU 6299
题意略. 思路: 我们先把所有字符串处理成 ")))((((" 这样的形式.然后我们把这些字符串排个序,按照min(l,r)来排,小的在前,在我的代码中,l为 ( 的个数,r 为 ...