lambda表达式的一些学习
2024-09-01 08:50:26
关于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);
}
}
最新文章
- Java知多少(112)数据库之删除记录
- [v]Debian类系统的有效国内源
- 在Android应用中实现Google搜索的例子
- swift苹果的下一代语言
- android界面优化笔记(TODO)
- 【贪心】HDU 5783 Divide the Sequence
- ecshop中ajax的调用原理 1
- Android之View绘制流程源码分析
- 第一个Vue插件从封装到发布
- HTML meta refresh 刷新与跳转(重定向)页面
- RecyclerView与ListView 对比浅析:缓存机制
- C# 如何隐藏或显示工作表中的网格线
- linux之配置Mongodb~
- Python-bootstrap
- html5的理解
- linux 免输入密码脚本
- <;魔鬼投资学>;读书笔记
- 网站搜索引擎优化(SEO)的18条守则
- 13-调试Dockerfile
- so easy, too happy
热门文章
- 从MySQL迁移到MariaDB(CentOS)
- Python3基本数据类型之列表
- JVM 栈帧之操作数栈与局部变量表
- 关于 .Net Core runtimeconfig 文件说明
- MVC整体运行流程一(进入管道)
- jquery实现表格导入到Excel(加图片)
- CSS 之Grid网格大致知识梳理1
- MySQL数据库之表的增删改查
- 分清<;url-pattern>;/<;/url-pattern>;与<;url-pattern>;/*<;/url-pattern>;的不同
- HashMap原理。图文并茂式解读。这些注意点你一定还不了解