首页 > 解决方案 > 转换代码以获取带有第二个大括号的列表

问题描述

我有下面的一段代码,其中输入是动态的。在这里,我采用了 2 个输入,但还有更多输入。

我在循环中迭代这个方法()。在第一次迭代中,添加了 [name=ram, empNo=1]。在下一次迭代中,将添加更多详细信息,输出为::[name=ram, empNo=1, name=shyam, empNo=2] public class Main2 { static List list=new ArrayList<>();

public static void main(String[] args) {
    // TODO Auto-generated method stub
    List<String> list1=add();
    
    
    list.addAll(list1);
    System.out.println(list);
}

private static List<String> add() {
    // TODO Auto-generated method stub
    List<String> list2=new ArrayList<>();
    list2.add("name=ram");
    list2.add("empNo=1");
    return list2;
}

}

我得到如下输出: [name=ram, empNo=1, name=shyam, empNo=2] 第二次迭代后。但我需要最终输出为 :: [{name=ram, empNo=1}, {name=shyam, empNo=2}]

谁能帮我解决这个问题

标签: java

解决方案


你没有告诉方法做任何事情。list2 只是一个字符串列表,那么它怎么知道,在每第二个项目之后应该添加一个“},{”?

您需要做的是使用字段名称和 empNo 为员工定义一个类,定义 toString() 方法,使其返回"name=" + this.name + ", empNo=" + this.empNo并将这些项目添加到列表中。之后,您可以使用 StringJoiner 创建您想要的输出,如下所示:

StringJoiner joiner = new StringJoinr("}, {", "[{", "}]");
list1.forEach(employee -> joiner.add(employee.toString()));
System.out.println(joiner);

推荐阅读