stream流处理 list 只返回某个字的拼接字符串
时间: 2023-08-15 11:05:27 浏览: 104
可以使用Java 8中的Stream API来处理List,然后使用过滤器过滤出包含特定字的元素,最后使用map操作将符合条件的元素转换为字符串,并将这些字符串拼接。可以参考下面的代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "kiwi", "peach");
String result = list.stream()
.filter(s -> s.contains("a"))
.map(String::toUpperCase)
.collect(Collectors.joining(", "));
System.out.println(result);
```
这段代码会输出包含字母"a"的元素,并将它们转换为大写字母,最后用逗号隔开的字符串,即:
```
APPLE, BANANA, ORANGE, KIWI
```
你可以将代码中的list替换为你自己的List。
相关问题
stream流某个字段拼接
可以使用Java 8的Stream API中的map和collect方法来实现流中某个字段的拼接。例如,假设有一个List<Person>,其中Person类有一个name字段,可以使用以下代码将所有人的名字拼接成一个字符串:
```
String names = people.stream()
.map(Person::getName)
.collect(Collectors.joining(", "));
```
这将返回一个以逗号和空格分隔的所有人名字的字符串。
stream流把list的某个字段替换成其他值后将该字段用逗号拼接
在Java中,可以使用Stream API和Lambda表达式来将List的某个字段替换成其他值,并将该字段用逗号拼接成一个字符串。以下是示例代码:
```java
import java.util.List;
import java.util.stream.Collectors;
public class ListToStringExample {
public static void main(String[] args) {
List<Fruit> fruits = List.of(new Fruit("apple", 2), new Fruit("banana", 3), new Fruit("orange", 4));
String result = fruits.stream()
.map(fruit -> fruit.getName().equals("banana") ? new Fruit("grapefruit", fruit.getQuantity()) : fruit)
.map(Fruit::getName)
.collect(Collectors.joining(", "));
System.out.println(result); // 输出: "apple, grapefruit, orange"
}
}
class Fruit {
private String name;
private int quantity;
public Fruit(String name, int quantity) {
this.name = name;
this.quantity = quantity;
}
public String getName() {
return name;
}
public int getQuantity() {
return quantity;
}
@Override
public String toString() {
return "Fruit{" +
"name='" + name + '\'' +
", quantity=" + quantity +
'}';
}
}
```
在这个示例中,我们创建了一个包含三个Fruit对象的List。然后,我们使用`stream()`方法将List转换为一个Stream对象。接着,我们使用两个`map()`方法,第一个`map()`方法将Fruit对象中名称为"banana"的水果替换成名称为"grapefruit"的水果,第二个`map()`方法将所有Fruit对象的名称映射成一个字符串流。最后,我们使用`Collectors.joining()`方法将流中的所有字符串连接成一个字符串,并以逗号和空格作为分隔符。最终,我们将结果打印到控制台上。
需要注意的是,`map()`方法返回的是一个新的Stream对象,因此需要使用两个`map()`方法来进行两次转换。此外,我们定义了一个Fruit类来表示水果,其中包含名称和数量两个字段。
阅读全文