簡體   English   中英

Java 8字符串連接應接受功能<E,R>

[英]Java 8 String join should accept Function<E,R>

有什么理由為什么String.join現在僅與CharSequence元素一起使用?

將不同集合的元素連接到String有點困難。

將其添加到api支持中將非常容易:

public static <E extends Object, R extends CharSequence> String  join(final CharSequence delimiter, Iterable<E> elements, Function<E, R> stringExtractor)

並且要保持相同的api:

public static <E extends Object> String join(final CharSequence  delimiter, Iterable<CharSequence> elements)
{
    return join(delimiter, elements, Function.identity());
}

比起加入整數,我們可以:

String.join(",", IntStream.range(0, 5).boxed().collect(Collectors.toList()), elem -> elem.toString())

您確定不希望在流的末尾使用Collectors.joining()收集器嗎?

范例程式碼

List<Integer> numbers = new ArrayList<>();

numbers.add(5);
numbers.add(6);
numbers.add(7);
numbers.add(8);

String value = numbers.stream().map(Object::toString).collect(Collectors.joining("-"));
System.out.println(value); // Outputs 5-6-7-8

工作示例http : //ideone.com/C1EGas

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM