stream流去除List<String>集合中存在数据库里的元素
时间: 2024-02-20 17:00:42 浏览: 19
可以使用Java 8的Stream流来去除List<String>集合中存在数据库中的元素,具体步骤如下:
1. 使用Java 8的Stream流对List<String>集合进行遍历。
2. 对于每个元素,使用数据库查询语句来判断该元素是否存在于数据库中。
3. 如果存在于数据库中,则将该元素过滤掉,否则保留该元素。
4. 最终得到的Stream流中就是去除了存在于数据库中的元素的集合。
示例代码如下:
```java
List<String> list = Arrays.asList("a", "b", "c", "d", "e");
List<String> dbList = Arrays.asList("b", "d");
List<String> filteredList = list.stream()
.filter(str -> !dbList.contains(str)) // 判断元素是否存在于数据库中
.collect(Collectors.toList()); // 将过滤后的元素收集到一个新的List中
System.out.println(filteredList); // 输出结果为 [a, c, e]
```
上述代码中,list为待过滤的集合,dbList为数据库中已存在的元素集合,filteredList为过滤后的集合。在遍历list时,使用lambda表达式判断该元素是否存在于dbList中,最终将过滤后的元素收集到一个新的List中。
相关问题
有一个List<String> 集合,如何用java8的stream来实现List<String> 转List<Long>
可以使用Java 8的Stream API的map方法将List<String>转换为List<Long>。具体实现方式如下:
```java
List<String> stringList = Arrays.asList("1", "2", "3", "4", "5");
List<Long> longList = stringList.stream()
.map(Long::valueOf)
.collect(Collectors.toList());
```
在上面的代码中,我们首先使用Arrays.asList方法创建了一个包含一些字符串的List<String>对象。接着,我们调用了stream方法将List<String>转换为Stream<String>对象,并使用map方法将每个字符串转换为Long类型。最后,我们使用collect方法将Stream<Long>对象转换为List<Long>对象。
需要注意的是,这个转换过程可能会抛出NumberFormatException异常,如果字符串无法转换为Long类型的话。因此,在实际应用中,可能需要加入一些异常处理的代码来保证程序的健壮性。
在java中通过stream流将list<String>转换为List<Double>
在Java中,您可以使用流(Stream)将一个`List<String>`转换为`List<Double>`。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("1.2");
stringList.add("3.4");
stringList.add("5.6");
List<Double> doubleList = stringList.stream()
.map(Double::parseDouble)
.collect(Collectors.toList());
System.out.println(doubleList);
}
}
```
在上面的代码中,我们首先创建了一个`List<String>`,然后使用`stream()`方法将其转换为流。接下来,我们使用`map()`方法将每个字符串转换为`Double`类型,通过方法引用`Double::parseDouble`实现转换。最后,我们使用`collect(Collectors.toList())`方法将流转换回`List<Double>`类型。
输出结果将是:`[1.2, 3.4, 5.6]`,即成功将`List<String>`转换为了`List<Double>`。