首页 > 编程知识 正文

将数组转成list,数据转list

时间:2023-05-06 01:45:52 阅读:200311 作者:4363

文章目录 常用方法代码演示返回值 StringJoiner 源码

常用方法 用StringBuilder实现String.join()Stream api 收集的方法joining()方法2和3的底层实现StringJoiner 代码演示 public class StringJoinerTest {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");list.add("d");String delimiter = ", ";// 1.用StringBuilder实现StringBuilder sb = new StringBuilder(list.isEmpty() ? "" : list.get(0));for (int i = 1; i < list.size(); i++) {sb.append(delimiter).append(list.get(i));}System.out.println("method 1: " + sb.toString());// @since 1.8// 2.String.join()System.out.println("method 2: " + String.join(delimiter, list));// 3.Stream api 收集的方法joining()System.out.println("method 3.1: " + list.stream().collect(Collectors.joining()));System.out.println("method 3.2: " + list.stream().collect(Collectors.joining(delimiter)));System.out.println("method 3.3: " + list.stream().collect(Collectors.joining(delimiter, "{", "}")));// 4. 方法2和3的底层实现StringJoiner//StringJoiner sj = new StringJoiner(delimiter);StringJoiner sj = new StringJoiner(delimiter, "(", ")");for (String str : list) {sj.add(str);}System.out.println("method 4: " + sj.toString());}} 返回值 method 1: a, b, c, dmethod 2: a, b, c, dmethod 3.1: abcdmethod 3.2: a, b, c, dmethod 3.3: {a, b, c, d}method 4: (a, b, c, d) StringJoiner 源码

StringJoiner add(CharSequence newElement)

将给定的副本CharSequence值作为下一个元素StringJoiner值。 如果newElement为null ,则"null"加入。

public StringJoiner add(CharSequence newElement) { prepareBuilder().append(newElement); return this;} private StringBuilder prepareBuilder() {if (value != null) {value.append(delimiter);} else {value = new StringBuilder().append(prefix);}return value;}private StringBuilder value;

重写了toString方法

@Overridepublic String toString() {if (value == null) {return emptyValue;} else {if (suffix.equals("")) {return value.toString();} else {int initialLength = value.length();String result = value.append(suffix).toString();// reset value to pre-append initialLengthvalue.setLength(initialLength);return result;}}}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。