Java Stream 流操作 01

package test;

import org.junit.Test;
import xin.yi.domain.Person;

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

/**
 * 如何创建一个包含整数 1 到 10 的流?
 * 如何使用流操作从一个整数流中过滤出所有偶数?
 * 如何使用流操作将一个字符串列表中的所有字符串连接成一个单独的字符串?
 * 如何使用流操作将一个整数列表中的所有元素求和?
 * 如何使用流操作将一个字符串列表中的所有元素按字母顺序排序?
 * 如何使用流操作从一个整数流中找到最大的元素?
 * 如何使用流操作将一个字符串列表中的所有元素转换为大写字母?
 * 如何使用流操作从一个整数流中计算平均值?
 * 如何使用流操作从一个字符串流中找到包含特定子字符串的第一个元素?
 * 如何使用流操作从一个对象列表中提取某个属性的所有唯一值?
 */
public class Test_13 {

    /*如何创建一个包含整数 1 到 10 的流?*/
    @Test
    public void test_01() {
        IntStream stream = IntStream.rangeClosed(1, 10);
        stream.forEach(System.out::println);
    }

    /*如何使用流操作从一个整数流中过滤出所有偶数?*/
    @Test
    public void test_02() {
        IntStream.rangeClosed(1, 10)
                .filter(x -> x % 2 == 0)
                .forEach(System.out::println);
    }

    /*如何使用流操作将一个字符串列表中的所有字符串连接成一个单独的字符串?*/
    @Test
    public void test_03() {
        System.out.println(Arrays.asList("y", "x", "t", "p", ".", "l", "o", "v", "e")
                .stream()
                .collect(Collectors.joining()));
    }

    /*如何使用流操作将一个整数列表中的所有元素求和?*/
    @Test
    public void test_04() {
        System.out.println(IntStream.rangeClosed(1, 10)
                .sum());
    }

    /*如何使用流操作将一个字符串列表中的所有元素按字母顺序排序?*/
    @Test
    public void test_05() {
        Arrays.asList("y", "x", "t", "p", ".", "l", "o", "v", "e")
                .stream()
                .sorted()
                .forEach(System.out::println);
    }


    /*如何使用流操作从一个整数流中找到最大的元素?*/
    @Test
    public void test_06() {
        System.out.println(Arrays.asList(1, 3, 5, 1, 3, 2, 3, 4, 1, 2)
                .stream()
                .max(Comparator.comparing(Integer::valueOf))
                .orElse(0));
    }


    /*如何使用流操作将一个字符串列表中的所有元素转换为大写字母?*/
    @Test
    public void test_07() {
        Arrays.asList("y", "x", "t", "p", ".", "l", "o", "v", "e")
                .stream()
                .map(String::toUpperCase)
                .forEach(System.out::println);
    }

    /*如何使用流操作从一个整数流中计算平均值?*/
    @Test
    public void test_08() {
        System.out.println(Arrays.asList(1, 3, 5, 1, 3, 2, 3, 4, 1, 2)
                .stream()
                .mapToDouble(Integer::valueOf)
                .average()
                .orElse(0D));
    }

    /*如何使用流操作从一个字符串流中找到包含特定子字符串的第一个元素?*/
    @Test
    public void test_09() {
        System.out.println(Arrays.asList("y", "x", "t", "p", ".", "l", "o", "v", "e", "yxtp")
                .stream()
                .filter(x -> x.contains("yxtp"))
                .findFirst()
                .orElse(".love"));
    }

    /*如何使用流操作从一个对象列表中提取某个属性的所有唯一值?*/
    @Test
    public void test_10() {
        Arrays.asList(
                new Person() {{
                    setName("aa");
                }},
                new Person() {{
                    setName("bb");
                }},
                new Person() {{
                    setName("aa");
                }})
                .stream()
                .map(Person::getName)
                .distinct()
                .collect(Collectors.toList())
                .forEach(System.out::println);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinyi_java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值