记录:jdk1.8中Stream 类使用demo
public class TestController {
public static void main(String[] args) {
Uuser uuser = new Uuser("zs-张三",12);
Uuser uuser1 = new Uuser("ls-李四",14);
Uuser uuser2 = new Uuser("ww-王五",15);
Uuser uuser3 = new Uuser("zl-赵六",18);
Uuser uuser4 = new Uuser("sq-孙七",19);
Uuser uuser5 = new Uuser("zb-周八",19);
List<Uuser> lists = new ArrayList<>();
List<Uuser> lists2 = new ArrayList<>();
lists.add(uuser);
lists.add(uuser1);
lists.add(uuser2);
lists.add(uuser3);
lists.add(uuser4);
lists2.add(uuser5);
lists2.add(uuser4);
Stream<Uuser> limit = lists.stream().limit(2);
List<Uuser> collect = limit.collect(Collectors.toList());
boolean b = lists.stream().allMatch(t -> t.getAge() > 18);
boolean b1 = lists.stream().anyMatch(t -> t.getAge() > 18);
List<String> collect1 = lists.stream().map(t -> t.getName()).collect(Collectors.toList());
List<Uuser> collect2 = Stream.concat(lists.stream(), lists2.stream()).collect(Collectors.toList());
long count = Stream.concat(lists.stream(), lists2.stream()).count();
List<Uuser> collect3 = Stream.concat(lists.stream(), lists2.stream()).distinct().collect(Collectors.toList());
List<Uuser> collect4 = Stream.concat(lists.stream(), lists2.stream()).filter(t -> t.getAge() >= 18).collect(Collectors.toList());
Optional<Uuser> any = Stream.concat(lists.stream(), lists2.stream()).findAny();
Optional<Uuser> first = Stream.concat(lists.stream(), lists2.stream()).findFirst();
List<Object> collect5 = Stream.concat(lists.stream(), new ArrayList<Uuser>().stream())
.flatMap(
t -> lists2.stream().filter(s->s.getName().equals(t.getName()))
).collect(Collectors.toList());
List<Uuser> collect6 = Stream.concat(lists.stream(), lists2.stream()).sorted(Comparator.comparing(Uuser::getAge).reversed()).collect(Collectors.toList());
List<Uuser> collect7 = Stream.concat(lists.stream(), lists2.stream()).sorted((u1, u2) -> u2.getAge() - u1.getAge()).collect(Collectors.toList());
List<Uuser> collect8 = Stream.concat(lists.stream(), lists2.stream()).sorted((u1, u2) -> u2.getName().compareTo(u1.getName())).collect(Collectors.toList());
Optional<Uuser> max = Stream.concat(lists.stream(), lists2.stream()).max(Comparator.comparing(Uuser::getAge));
Optional<Uuser> min = Stream.concat(lists.stream(), lists2.stream()).min(Comparator.comparing(Uuser::getAge));
Stream<? extends Serializable> stream = Stream.of("11", "22", "33", 44);
int sum1 = Stream.of(11, 22, 33, 44).mapToInt(t -> t).sum();
int sum = lists.stream().mapToInt(t -> t.getAge()).sum();
Integer reduce2 = lists.stream().reduce(0, (i, t) -> i + t.getAge(), Integer::sum);
Optional<Integer> reduce = Stream.of(11, 22, 33, 44).reduce(Integer::sum);
Integer reduce1 = Stream.of(11, 22, 33, 44).reduce(0, Integer::sum);
System.out.println(reduce2);
Map<String, List<Uuser>> collect9 = Stream.concat(lists.stream(), lists2.stream()).collect(Collectors.groupingBy(Uuser::getName));
}
}
class Uuser{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Uuser{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Uuser(String name, int age) {
this.name = name;
this.age = age;
}
}