-
list处理掉重复的值
List newList = list.stream().distinct().collect(Collectors.toList());
-
List 快速转换成“,“号分隔的String;
List<String> resNames = tableInfos.stream().map(AutoExcelToSqlDTO::getResName).collect(Collectors.toList()); String join = String.join(",", nameStrList);
-
List 快速找到重复的值
List<String> nameStrList = new ArrayList<>(); Map<AutoExcelToSqlDTO, List<AutoExcelToSqlDTO>> collect = tableInfos.stream().collect(Collectors.groupingBy(Function.identity())); for (Map.Entry<AutoExcelToSqlDTO, List<AutoExcelToSqlDTO>> autoExcelToSqlDTOListEntry : collect.entrySet()) { if (autoExcelToSqlDTOListEntry.getValue().size() > 1) { nameStrList.add(autoExcelToSqlDTOListEntry.getValue().get(0).getResName()); } }
-
字符串去重
String str = "aabbhhvbbbjkdf"
char[] ch = str.toCharArray();
Set<Object> set = new HashSet<Object>();
StringBuilder sb = new StringBuilder();
for(char c: ch) {
if (set.add(c)) {
sb.append(c);
}
}
System.out.println(sb.toString());
- 递归子数据
实体类
package com.shucha.projhigh.biz.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdy.common.model.BaseModel;
import com.sdy.common.utils.DateUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* <p>
* 组织机构信息表
* </p>
*
* @author cgj
* @since 2021-07-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class SysDept extends BaseModel {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@ApiModelProperty(value = "主键")
@TableId
private Long id;
/**
* 上级节点部门id
*/
@ApiModelProperty(value = "上级节点部门id")
private Long parentId;
/**
* 部门名称(全称)
*/
@ApiModelProperty(value = "部门名称(全称)")
private String name;
/**
* 部门唯一code
*/
@ApiModelProperty(value = "部门唯一code")
private String code;
@TableField(exist = false)
private List<SysDept> childTestList;
}
实现
@Override
public List<SysDept> test() {
List<SysDept> oneList = list(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getParentId, 0));
List<SysDept> twoList = list(Wrappers.<SysDept>lambdaQuery().ne(SysDept::getParentId, 0));
for (SysDept sysDept : oneList) {
List<SysDept> sysDepts = iterateDepts(twoList, sysDept.getId());
sysDept.setChildTestList(sysDepts);
}
return oneList;
}
public List<SysDept> iterateDepts(List<SysDept> twoList, Long pid){
List<SysDept> result = new ArrayList<>();
for (SysDept sysDept : twoList) {
// 获取部门的id
Long deptid = sysDept.getId();
// 获取部门的父id
Long parentid = sysDept.getParentId();
if(parentid != null){
if(parentid.equals(pid)){
// 递归查询当前子部门的子部门
List<SysDept> iterateDept = iterateDepts(twoList,deptid);
sysDept.setChildTestList(iterateDept);
result.add(sysDept);
}
}
}
return result;
}