当前位置: 代码迷 >> 综合 >> 【Java】Java 常用代码片段
  详细解决方案

【Java】Java 常用代码片段

热度:24   发布时间:2023-09-21 00:53:53.0

目录

一、树形结构相关代码

1.1 树形结构构造 -- 常用于构造目录

1.2 循环删除节点 -- 循环操作某个节点及其子节点

二、时间相关代码

2.1 时间格式化

三、JSON处理

3.1 将JSON格式的字符串转成map

3.2 将一种类型的bean数组转换成成另一种bean类型的数组

3.3将bean转换成map


一、树形结构相关代码

1.1 树形结构构造 -- 常用于构造目录

@Override
public CatResult getItemCatList() {CatResult catResult = new CatResult();// 调用递归的函数catResult.setData(getCatList(0));return catResult;
}/*** 递归查询分类* @param parentId* @return*/
private List<?> getCatList(long parentId) {// 创建查询条件TbItemCatExample example = new TbItemCatExample();TbItemCatExample.Criteria criteria = example.createCriteria();criteria.andParentIdEqualTo(parentId);// 执行查询// 先取出父节点是 parentId 的节点List<TbItemCat> lists = tbItemCatMapper.selectByExample(example);List resultList = new ArrayList<>();// 由于界面显示,只显示14个parentId == 0int count = 0;// 循环构造成需要的格式for (TbItemCat tbItemCat : lists) {CatNode catNode = new CatNode();// 判断是否为父节点if(tbItemCat.getIsParent()) {if(parentId == 0) {catNode.setName("<a href='/products/"+tbItemCat.getId()+".html'>"+tbItemCat.getName()+"</a>");} else {catNode.setName(tbItemCat.getName());}catNode.setUrl("/products/" + tbItemCat.getId() + ".html");catNode.setItem(getCatList(tbItemCat.getId()));resultList.add(catNode);// 由于界面显示,只显示14个parentId == 0count++;if(parentId == 0 && count >= 14) {break;}} else {resultList.add("/products/" + tbItemCat.getId() + ".html|" + tbItemCat.getName());}}return resultList;
}

 

1.2 循环删除节点 -- 循环操作某个节点及其子节点

一次性查出所有要删除的索引,使用 in 删除

/*** 删除节点* @param parentId* @param nodeId* @return*/
@Override
public TaotaoResult removeContentCategory(Long parentId, Long nodeId) {// 获取所有要删除的节点内容List<Long> lists = getNeedRemoveItemIdList(nodeId);// 删除当前节点TbContentCategoryExample tbRemoveExample = new TbContentCategoryExample();TbContentCategoryExample.Criteria rmCriteria = tbRemoveExample.createCriteria();rmCriteria.andIdIn(lists);int count = tbContentCategoryMapper.deleteByExample(tbRemoveExample);
}/*** 获取所有要删除的id* @param nodeId* @return*/
@Override
public List<Long> getNeedRemoveItemIdList(Long nodeId) {List<Long> idList = new ArrayList<>();// 先添加自己idList.add(nodeId);// 判断当前节点是否是其他节点的父节点TbContentCategoryExample example = new TbContentCategoryExample();TbContentCategoryExample.Criteria criteria =  example.createCriteria();criteria.andParentIdEqualTo(nodeId);List<TbContentCategory> list = tbContentCategoryMapper.selectByExample(example);// 若当前节点是其他节点的父节点if(list.size() > 0) {// 循环删除子节点for (TbContentCategory item : list) {// 添加自己idList.addAll(getNeedRemoveItemIdList(item.getId()));}}return idList;
}

 

二、时间相关代码

2.1 时间格式化

通过 SimpleDateFormat 类进行时间格式化

Date date = new Date();
String strFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
String strTime = sdf.format(date);

 

三、JSON处理

使用 fastjson 处理

<!--fastjson-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.51</version>
</dependency>

3.1 将JSON格式的字符串转成map

Map<String, String> specMap = JSON.parseObject(spec, Map.class);

3.2 将一种类型的bean数组转换成成另一种bean类型的数组

import com.alibaba.fastjson.JSON;List<Sku> skuList = skuFeign.findAll();// 将LIST<SKU>转换成LIST<SKUINFO>
List<SkuInfo> skuInfoList = JSON.parseArray(JSON.toJSONString(skuList), SkuInfo.class);

3.3将bean转换成map

Map<String, Object> specMap = JSON.parseObject(skuInfo.getSpec(), Map.class);