开yun体育网这种写法愈加直快明了-kaiyun·开云(中国)官方网站 入口
发布日期:2025-08-22 08:49 点击次数:114
(二)伙同操作实战
在 Java 编程中,伙同是咱们一样使用的数据结构,而 Lambda 抒发式为伙同操作带来了前所未有的便利,让咱们不错用愈加直快、优雅的神气对伙同进行遍历、过滤、映射、排序等操作。
1. 伙同遍历
在传统的 Java 编程中,咱们遍历伙同庸俗使用for轮回或foreach轮回。举例,遍历一个整数列表并打印每个元素:
TypeScript
取消自动换行复制
import java.util.ArrayList;
import java.util.List;
publicclassMain {
publicstaticvoidmain(String[] args) {
List<Integer> list = newArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
for (Integer num : list) {
System.out.println(num);
}
}
}
固然这种神气大致达成遍历功能,但代码略显冗长。而使用 Lambda 抒发式结合forEach材干,代码不错简化为:
TypeScript
取消自动换行复制
import java.util.ArrayList;
import java.util.List;
publicclassMain {
publicstaticvoidmain(String[] args) {
List<Integer> list = newArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.forEach(num -> System.out.println(num));
}
}
这里的list.forEach(num -> System.out.println(num))使用 Lambda 抒发式界说了对伙同中每个元素的操作,即打印元素。Lambda 抒发式num -> System.out.println(num)摄取一个参数num,并将其打印到为止台。这种写法愈加直快明了,况兼大致更好地体当代码的意图。
2. 伙同过滤
从伙同中筛选出相宜特定条目的元素是常见的操作。举例,从一个字符串列表中筛选出系数长度大于 5 的字符串,使用传统神气达成如下:
TypeScript
取消自动换行复制
import java.util.ArrayList;
import java.util.List;
publicclassMain {
publicstaticvoidmain(String[] args) {
List<String> list = newArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("JavaScript");
list.add("Ruby");
List<String> filteredList = newArrayList<>();
for (String str : list) {
if (str.length() > 5) {
filteredList.add(str);
}
}
for (String str : filteredList) {
System.out.println(str);
}
}
}
这段代码使用了两个轮回,一个用于筛选元素,一个用于打印筛选后的扫尾,代码较为繁琐。而使用 Lambda 抒发式结合流 (Stream) API,代码不错简化为:
TypeScript
取消自动换行复制
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
publicclassMain {
publicstaticvoidmain(String[] args) {
List<String> list = newArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("JavaScript");
list.add("Ruby");
List<String> filteredList = list.stream()
.filter(str -> str.length() > 5)
.collect(Collectors.toList());
filteredList.forEach(System.out::println);
}
}
在这段代码中开yun体育网,list.stream()将伙同调度为流,流是一种维持国法和并行团员操作的数据源。filter(str -> str.length() > 5)使用 Lambda 抒发式筛选出长度大于 5 的字符串,collect(Collectors.toList())将筛选后的扫尾网罗到一个新的列表中。通过这种神气,咱们不错用直快的代码完成复杂的伙同过滤操作,提升诞生后果。