Java基础

本文介绍了Java编程中常见的技术点,包括对象数组去重、Json字符串转List、列表转树形结构、文件夹和文件操作、空值判断、集合排序、筛选对象以及HTTP请求参数的处理方法(@RequestBody,@RequestParam,@PathVariable)。
摘要由CSDN通过智能技术生成
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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值