java stream() 字符串拼接


result = String.join(",",settledList);
result = settledList.stream().collect(Collectors.joining(","));

### Java Stream API 中 `map` 方法用于字符串拼接Java 中,Stream API 提供了一种简洁而强大的方式来处理集合数据。通过结合 `map` 和 `Collectors.joining()` 方法,可以轻松实现字符串拼接操作。 以下是基于多级 Map 数据结构的一个具体示例: #### 示例代码 假设有一个嵌套的 `Map<String, Object>` 结构,其中某些值本身也是 Map 类型。可以通过以下代码将其所有值提取并拼接成一个逗号分隔的字符串[^1]。 ```java import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Map<String, Object> map4 = new HashMap<>(); map4.put("x", "x"); map4.put("z", "z"); Map<String, Object> map3 = new HashMap<>(); map3.put("y", map4); String result = map3.values().stream() .flatMap(o -> ((Map<String, Object>) o).values().stream()) .map(Object::toString) .collect(Collectors.joining(",")); System.out.println(result); } } ``` 上述代码实现了以下功能: - 调用 `map3.values().stream()` 获取顶层 Map 的所有值流。 - 使用 `flatMap` 展平内部 Map 的值列表。 - 对展平后的每个对象调用 `Object::toString` 将其转换为字符串。 - 最终利用 `Collectors.joining(",")` 完成字符串拼接。 运行结果将是: `x,z` --- 如果目标是从简单的 List 或数组中拼接字符串,则可以直接使用 `Stream.map` 和 `joining` 方法[^3]。例如: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); String joined = numbers.stream() .map(Object::toString) .collect(Collectors.joining(",")); System.out.println(joined); // 输出: 1,2,3,4,5 ``` 此代码片段展示了如何将整数列表中的元素逐一映射为字符串形式,并最终连接起来形成单一字符串。 --- 对于更复杂的场景,比如需要对字符串进行特定格式化后再拼接,也可以扩展 `map` 函数逻辑。例如: ```java List<String> words = Arrays.asList("apple", "banana", "cherry"); String formattedResult = words.stream() .map(word -> word.toUpperCase() + "-processed") .collect(Collectors.joining("; ")); System.out.println(formattedResult); // 输出: APPLE-PROCESSED; BANANA-PROCESSED; CHERRY-PROCESSED ``` 在此例子中,先将单词转为大写并附加额外文本,再以分号加空格作为分隔符完成拼接。 --- 关于字符串拼接的具体机制以及性能考量方面,推荐使用 `StringBuilder` 或者 `StringBuffer` 来替代传统的 "+" 操作符,尤其是在循环或者频繁修改的情况下[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值