将list集合的某一字段拼接单个String
有2种方法
- 循环(lambad表达式方法)
- 递归的方式将list集合的某一字段拼接单个String
List<Employee> emps = Arrays.asList(
new Employee(102, "李四", 59, 6666.66, Employee.Status.BUSY),
new Employee(101, "张三", 18, 9999.99, Employee.Status.FREE),
new Employee(103, "王五", 28, 3333.33, Employee.Status.VOCATION)
);
//将list集合的某一字段拼接单个String
@Test
public void testList(){
if(emps != null && emps.size() >=0){
//第1种 lambad表达式方法
String s= emps.stream().map(p->p.getName()).collect(Collectors.joining(","));
System.out.println(s);
//第2种 递归的方式将list集合的某一字段拼接单个String
String loopJoint = loopJointASC(emps, emps.size());
System.out.println(loopJoint);
}
}
public static String loopJointASC(List<Employee> list, int size) {
if(list.size()<=0) return null;
if(size==1) return list.get(list.size()-1).getName();
String joinStr = ",";
String name = list.get(list.size()-size).getName();
size--;//下标值和递归次数减少1
String loopJoint = loopJointASC(list, size);
return name+joinStr+loopJoint;
}
运行结果