创建一个方法,参数1:List类型,传入可能为null;参数2:int类型;基于stream操 50
创建一个方法,参数1:List类型,传入可能为null;参数2:int类型;基于stream操作,返回一个新集合,集合中user的level属性值等于参数2的值;如果没有...
创建一个方法,参数1:List类型,传入可能为null;参数2:int类型;基于stream操作,返回一个新集合,集合中user的level属性值等于参数2的值;如果没有匹配,返回一个空的集合而非null
展开
1个回答
展开全部
这是Java8的开始的新API ,stream 流操作
首先创建一个User类,然后创建一个Test 测试类
//核心代码如下
public static List<User> filterByLevel(List<User> list, int level) {
return list==null?new ArrayList<>():list.stream().filter(u->u.getLevel()==2).collect(Collectors.toList());
}
完整参考代码和注释如下
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
// 用户类
class User {
private String name;// 名
private int level;// 等级
public User() { //无参数构造器
}
public User(String name, int level) {//有参数构造器
this.name = name;
this.level = level;
}
//方便测试,重写toString方法
public String toString() {
return "User [name=" + name + ", level=" + level + "]";
}
//----下面是属性的setter和getter----
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list.add(new User("张三", 1));
list.add(new User("李四", 2));
list.add(new User("王五", 2));
list.add(new User("燕小六", 3));
list.add(new User("田七", 2));
List<User> resultList = filterByLevel(list, 2);
System.out.println(resultList);
}
//题目要求的方法
public static List<User> filterByLevel(List<User> list, int level) {
if (list == null) {// 如果list为null .返回一个空的集合
return new ArrayList<User>();
}
// 集合进行流处理. 筛选level为2的元素,并且把满足条件的结果收集起来
return
list.stream()
.filter(u -> u.getLevel() == 2)
.collect(Collectors.toList());
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询