Stream流收集Object集合内对象中的字符串集合到一个集合内
时间: 2023-05-24 15:02:15 浏览: 138
可以使用 Java 8 的 Stream API,具体代码如下:
List<Object> objectList = new ArrayList<>(Arrays.asList("Hello", 123, "World", true));
List<String> stringList = objectList.stream()
.filter(obj -> obj instanceof String)
.map(String::valueOf)
.collect(Collectors.toList());
这段代码会将 objectList 中所有的字符串提取出来,放入一个新的 stringList 中。
相关问题
java 对象集合中字符串集合属性,把每个元素前就拼接字符串stream
您好,针对您的问题,我理解您的意思是在 Java 对象集合中,有一个属性是字符串集合,您想对每个字符串添加一个前缀并返回一个新的字符串集合。为了实现这个需求,您可以使用 Java 8 中的 Stream API。
具体来说,您可以使用 map 方法将每个字符串与前缀拼接起来,然后使用 collect 方法将结果收集成一个新的字符串集合。示例代码如下:
```java
List<MyObject> objectList = ...; // 假设这是您的 Java 对象集合
List<Set<String>> stringSetList = objectList.stream()
.map(MyObject::getStringSetProperty) // 假设字符串集合属性名为 stringSetProperty
.map(stringSet -> stringSet.stream().map(s -> "prefix" + s).collect(Collectors.toSet()))
.collect(Collectors.toList());
```
上述代码中,我们首先使用 map 方法获取每个对象的字符串集合属性,然后使用另一个 map 方法将每个字符串与前缀拼接起来并收集成一个新的字符串集合,最后使用 collect 方法将所有的字符串集合收集成一个新的集合。需要注意的是,上述代码中的 `MyObject` 类和 `stringSetProperty` 属性名均需要根据您的具体情况进行替换。
java对象集合如何提取所有的id变成一个字符串集合
你可以使用Java中的流(Stream)和映射(Map)操作来提取Java对象集合中的所有id,并将它们转化为一个字符串集合。以下是一种可能的实现方式:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<YourObject> yourObjects = ...; // 你的对象集合
List<String> idList = yourObjects.stream()
.map(YourObject::getId)
.map(Object::toString) // 可选,如果id不是字符串类型,可以将其转换为字符串
.collect(Collectors.toList());
System.out.println(idList);
}
// 定义你的对象类
static class YourObject {
private int id;
public YourObject(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
}
```
在这个例子中,假设你有一个名为`YourObject`的对象类,其中包含一个`id`属性。你可以用自己的对象类替换示例中的`YourObject`类。
首先,使用`stream()`方法将对象集合转换为流。然后,使用`map()`方法将每个对象映射为其id属性。如果id属性不是字符串类型,你可以在第二个`map()`方法中将其转换为字符串。最后,使用`collect()`方法将结果收集到一个字符串集合中。
请注意,这里使用了Java 8及更高版本中引入的流(Stream)和映射(Map)操作。如果你使用的是更早版本的Java,你可以使用传统的循环来实现相同的功能。