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);
}
}
Java Stream 流操作 01
于 2023-11-02 17:50:13 首次发布