【JAVA基础】List处理
List处理
List使用Lists.partition()分片
public static <T> List<List<T>> partition(List<T> list, int size)
参数:该方法接受两个参数:
list:该列表将根据分区大小分为子列表。
size:每个子列表的期望大小。最后一个子列表的大小可能较小。
返回值:该方法返回连续子列表的列表。每个子列表(除了最后一个子列表)的大小都等于分区大小。
异常:如果分区大小为非正数,则Lists.partition()方法将引发IllegalArgumentException。
以下示例说明了上述方法的实现:
范例2:
// Java code to show implementation of
// Guava's Lists.partition() method
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.List;
class GFG {
// Driver's code
public static void main(String[] args)
{
// Creating a List of Characters
List<Character> myList
= Arrays.asList('H', 'E', 'L', 'L', 'O',
'G', 'E', 'E', 'K', 'S');
// Using Lists.partition() method to divide
// the original list into sublists of the same
// size, which are just views of the original list.
// The final list may be smaller.
List<List<Character> > lists
= Lists.partition(myList, 3);
// Displaying the sublists
for (List<Character> sublist:lists)
System.out.println(sublist);
}
}
输出:
[H, E, L]
[L, O, G]
[E, E, K]
[S]
/**
* 接收集团物料
*/
@ApiOperation(value = "集团物料接收接口")
@Permission(permissionPublic = true)
@PostMapping("/receiveinfo")
public String receiveinfo(@PathVariable Long organizationId,@RequestBody String reqContent) {
String esbCode = "0";
String esbDesc = "接收成功";
JtMdmMaterialReqDTO jtMdmMaterialReqDTO = new JtMdmMaterialReqDTO();
List<JtMdmResultDataInfoDTO> jtMdmResultDataInfoDTOList = new ArrayList<>();
try{
//String 转json
jtMdmMaterialReqDTO = JSONObject.parseObject(reqContent,JtMdmMaterialReqDTO.class);
List<JtMdmMaterialDataInfosDTO> jtMdmMaterialDataInfosDTOList = jtMdmMaterialReqDTO.getDATAINFOS();
//切片
List<List<JtMdmMaterialDataInfosDTO>> list = Lists.partition(jtMdmMaterialDataInfosDTOList,1);
for (List<JtMdmMaterialDataInfosDTO> jtMdmMaterialDataInfosDTOS : list) {
List<JtMdmMdMaterial> jtMdmMdMaterialList = new ArrayList<>();
//报文转JtMdmMdMaterial
jtMdmMaterialDataInfosDTOS.forEach(jtMdmMaterialDataInfosDTO -> {
jtMdmMdMaterialList.add(jtMdmMaterialDataInfosDTO.getDATAINFO());
});
List<JtMdmResultDataInfoDTO> pieceJtMdmResultDataInfoDTO = this.jtMdmMdMaterialService.receiveInfo(jtMdmMaterialReqDTO.getUUID(),jtMdmMdMaterialList);
jtMdmResultDataInfoDTOList.addAll(pieceJtMdmResultDataInfoDTO);
}
}catch (Exception e){
esbCode = "1";
esbDesc = e.getMessage();
}
JtMdmResultEsbDTO jtMdmResultEsbDTO = new JtMdmResultEsbDTO
.Builder()
.setESB(new JtMdmResultDTO
.Builder(esbCode,esbDesc)
.setDATA(new JtMdmResultDataDTO
.Builder()
.setDATAINFOS(new JtMdmResultDataInfosDTO
.Builder(jtMdmMaterialReqDTO.getUUID())
.setDATAINFO(jtMdmResultDataInfoDTOList)
.build())
.build())
.build())
.build();
return JSONObject.toJSONString(jtMdmResultEsbDTO);
}