1.对象数组去
List<MsnProductMark> newList = new ArrayList<>();
if(oldList.size()>0){
oldList.forEach(t ->{
boolean match = newList.stream().anyMatch(u -> t.getId().equals(u.getId()));
if(!match){
newList.add(t);
}
});
}
return newList
2.数据转换
Json字符串转List
JSONArray jsonArray = JSON.parseArray(testCompValueVo.getProductCode());
List<String> productCodes = jsonArray.toJavaList(String.class);
3.将list变为树形结构
//实体类TestEntity中需要增加一个属性 children
Map<String, List<TestEntity>> parentMap = list1.stream().collect(Collectors.groupingBy(TestEntity::getParentId));
list1.forEach(item -> { item.setChildren(parentMap.get(item.getId())); });
//过滤出根节点集合,根节点已经包含了孩子节点
String root = 父元素的parentId;
List<TestEntity> testEntities = list1.stream().filter(item -> root.equals(item.getParentId())).collect(Collectors.toList());
4.java删除本地文件夹及文件
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
File directory = new File("/path/to/dir");
//删除目录中的所有文件和子目录,而不删除目录本身
FileUtils.cleanDirectory(directory);
//删除目录及其中的所有内容
FileUtils.deleteDirectory(directory);
5.判断为空
1、判断对象、字符串是否为空
StringUtils.isEmpty(Object str)
2、判断数组是否为空
array.isEmpty()
3、判断Date是否为空
date != null
6.集合对象排序
//taskDivides是list<TaskDivides>
Collections.sort(taskDivides, new Comparator<TaskDivide>() {
@Override
public int compare(TaskDivide s1, TaskDivide s2) {
int num = (int) (s1.getTaskId() - s2.getTaskId());
//comparator里面,-1代表小于,0代表等于,1代表大于
int num2 = num == 0 ? s1.getTaskId().compareTo(s2.getTaskId()) : num;
return num2;
}
});
7.筛选对象集合
List<TaskManage> newList = taskManageList.stream().
filter(manage -> "2022-19087655".equals(manage.getMsnNum()))
.collect(Collectors.toList());
8.@RequestBody和@RequestParam和@PathVariable
@RequestParam用于获取请求参数的值
//接口:"https://localhost:8081/dev-api/mission/taskManage/batchPerson?personId=1627"
接收参数时就可以写@RequestParam("personId")
得到的就说1627
@PathVariable用于获取请求路径中的参数值
//接口:"https://localhost:8081/dev-api/mission/taskManage/batchPerson/1627"
//后台:@GetMapping("/{personId}")
接收参数时就可以写@PathVariable("personId")
@RequestBody用于获取请求体的内容
什么时候使用区别在于前端请求头的Content-type
(1)application/x-www-form-urlencoded:@RequestBody不是必须加的
(2)mutipart/form-data:@RequestBody不能处理这种格式
(3)其他格式,比如application/json,application/xml等,必须使用@RequestBody来处理
9.@EXCEL导出导入常用注解
https://blog.csdn.net/jianglonghui/article/details/127426323
10.各类型判断是否相等
- 字符串:Objects.equals(str1,str2)