【本篇是刚学Stream所做,正在完善,欢迎大家批评指正】
上班之余看到java 8的新特性Stream,第一眼以为和文件输入流和输出流相似,后面仔细看了下,完全不同,Stream可以作为老一版本(8以前)java开发者提高到8的一个重要理由。
Stream主要的作用可以快速的完成对List列表集合数据进行排序、筛选、统计、求和等操作,功能实用性满星!
实例:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
public class StreamTest {
public static void main(String[] args) {
List<TestData>mlist = new ArrayList<TestData>();
TestData data;
//字段名为name和time
data = new TestData("李明", "2019-06-13 10:24:05",23);
mlist.add(data);
data = new TestData("李强", "2019-06-13 11:24:05",16);
mlist.add(data);
data = new TestData("周明", "",23);
mlist.add(data);
data = new TestData("周强", "2019-06-13 08:24:05",17);
mlist.add(data);
List<TestData> squaresList = mlist.stream()
//下面是筛选
.filter(o -> !o.getTime().contains("08"))
.filter(o -> !o.getTime().isEmpty())
//下面是排序
.sorted(Comparator.comparing(TestData::getTime).reversed())
.sorted((o1,o2) -> o1.getAge()-o2.getAge())
//下面这一行把list列表数据返回,不写就是一个布尔类型结果返回
.collect(Collectors.toList());
}
}