stream取绝对值
时间: 2023-10-24 14:08:19 浏览: 111
要使用Stream取元素的绝对值,可以使用map操作来实现。首先,创建一个Stream对象,包含要操作的整数元素。然后,使用map方法传入一个Lambda表达式,该表达式将每个元素转换为其绝对值,并将结果存储在新的Stream对象中。最后,可以使用forEach方法来遍历新的Stream对象并打印每个元素的绝对值。
以下是一个示例代码:
```java
import java.util.stream.Stream;
public class StreamAbs {
public static void main(String[] args) {
Stream<Integer> stream = Stream.of(1, -2, -3, 4, -5);
stream.map(Math::abs).forEach(System.out::println); }
}
```
输出结果为:
```
1
2
3
4
5
```
这段代码中,我们使用Stream的map操作将每个元素转换为其绝对值。最后,使用forEach方法遍历新的Stream对象并打印每个元素的绝对值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关问题
stream取集合交集
你可以使用`stream`来取集合的交集。在Java 8及以上版本中,Java中的`Stream`提供了一个`filter`方法,该方法接受一个`Predicate`参数来过滤集合中的元素。你可以使用`filter`方法来检查一个元素是否存在于另一个集合中,并返回一个包含交集元素的新的`Stream`。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
Set<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toSet());
System.out.println(intersection); // 输出 [4, 5]
}
}
```
在上面的示例中,我们通过将两个列表转换为`Stream`,然后使用`filter`方法来检查元素是否存在于第二个列表中。最后,我们使用`collect`方法将交集元素收集到一个`Set`集合中。
希望能对你有所帮助!如果你有任何其他问题,请随时提问。
java stream取文件
你可以使用Java 8的Stream API来读取文件。以下是一个简单的示例代码:
```java
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class FileReading {
public static void main(String[] args) {
String fileName = "path/to/your/file.txt";
try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
stream.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们使用`Files.lines()`方法读取文件的所有行,并使用`forEach()`方法打印每一行。请注意,我们使用了Java 7中引入的`try-with-resources`语句,以确保文件被正确关闭。