在实际开发中,经常需要把一个列表中的元素,按照特定条件过滤出来,放到一个新的列表中。本文给出了几个例子,来描述解决这个问题的方法。
我们假设有一个书的List,需要找出其中id分别是3、6、8、9的书。本文介绍了两种方法来完成这个工作。第一种方法是使用java8支持的lambda表达式,代码简洁但是仅能用在java8版本上。第二种方法使用了传统的方式,可以用在java的旧版本上。
书的实体类:
package blog.zhangchao.csdnBlog;
/**
* 书
* @author zhangchao
*
*/
public class Book {
private String id;
private String name;
public Book(String id, String name) {
super();
this.id = id;
this.name = name;
}
public Book() {
super();
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
方法一
如果使用java8,可以用lambda表达式:
package blog.zhangchao.csdnBlog;
import java.util.List;
import java.util.stream.Collectors;
import java.util.ArrayList;
/**
* java8的例子,使用lambda表达式
* @author zhangchao
*
*/
public class Test {
/**
* 准备书的列表数据
* @return
*/
public static List prepareData() {
// 准备书的列表,id是从1