创建一个方法,参数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 展开
 我来答
雪飞潇潇
2018-07-09 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:876万
展开全部

这是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());

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式