Java8Stream详解~聚合(maxmincount)
max、min、count这些字眼你⼀定不陌⽣,没错,在mysql中我们常⽤它们进⾏数据统计。Java stream中也引⼊了这些概念和⽤法,极⼤地⽅便了我们对集合、数组的数据统计⼯作。
「案例⼀:获取String集合中最长的元素。」
public class StreamTest {
public static void main(String[] args) {
List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
Optional<String> max = list.stream().max(Comparatorparing(String::length));
System.out.println("最长的字符串:" + ());
}
}
「案例⼆:获取Integer集合中的最⼤值。」
public class StreamTest {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);
// ⾃然排序
Optional<Integer> max = list.stream().max(Integer::compareTo);
// ⾃定义排序
Optional<Integer> max2 = list.stream().max(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1pareTo(o2);
}
});
System.out.println("⾃然排序的最⼤值:" + ());
System.out.println("⾃定义排序的最⼤值:" + ());
}
}
「案例三:获取员⼯⼯资最⾼的⼈。」
public class StreamTest {
public static void main(String[] args) {
List<Person> personList = new ArrayList<Person>();
personList.add(new Person("Tom", 8900, 23, "male", "New York"));
personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
personList.add(new Person("Anni", 8200, 24, "female", "New York"));
personList.add(new Person("Owen", 9500, 25, "male", "New York"));
personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
Optional<Person> max = personList.stream().max(ComparatorparingInt(Person::getSalary));  System.out.println("员⼯⼯资最⼤值:" + ().getSalary());
}
}
「案例四:计算Integer集合中⼤于6的元素的个数。」
import java.util.Arrays;
import java.util.List;
public class StreamTest {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
long count = list.stream().filter(x -> x > 6).count();
java streamSystem.out.println("list中⼤于6的元素个数:" + count);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。