对List容器进行代码模拟动态sql查询效果(控制器层)
List<DeviceInfoDto> listNew=new ArrayList<>();
boolean flag = false;
for (DeviceInfoDto deviceInfoDto : deviceInfoDtoList) {
if (StringUtils.isEmpty(deviceName) || deviceInfoDto.getDeviceName().contains(deviceName)) {
if (StringUtils.isEmpty(ip) ||deviceInfoDto.getInterfaceItem().get(0).getIp()
.contains(ip)) {
listNew.add(deviceInfoDto);
flag = true;
total=listNew.size();
}
}}
if (!flag) {
return Wrapper.newInstance().success(null, 0);
}
注意
- flag作为开关标志参数,当发生变化时说明对象满足条件。
- 灵活选用String的API方法实现效果,类似contains()、equals()等。
对List容器实现代码分页效果
1.核心配置工具类Paging.java
//手动分页类
public class Paging {
private Integer totalNum;//总条数
private Integer totalPage;//总页数
private Integer pageSize;//每页条数
private Integer pageIndex;//当前页码
private Integer queryIndex;//当前页从第几条开始查
public static Paging pagination(Integer totalNum,Integer pageSize,Integer pageIndex){
Paging page = new Paging();
page.setTotalNum(totalNum);
Integer totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : totalNum / pageSize + 1;
page.setTotalPage(totalPage);
page.setPageIndex(pageIndex + 1);
page.setPageSize(pageSize);
page.setQueryIndex(pageSize * pageIndex);
return page;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getPageIndex() {
return pageIndex;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public Integer getQueryIndex() {
return queryIndex;
}
public void setQueryIndex(Integer queryIndex) {
this.queryIndex = queryIndex;
}
}
2.调用代码部分
//手动分页
Paging paging = Paging.pagination(listNew.size(),pageSize,pageIndex-1);
int fromIndex = paging.getQueryIndex();
int toIndex = 0;
if (fromIndex + paging.getPageSize() >= listNew.size()){
toIndex = listNew.size();
}else {
toIndex = fromIndex + paging.getPageSize();
}
if (fromIndex > toIndex){
listNew= Collections.EMPTY_LIST;
}
listNew=listNew.subList(fromIndex,toIndex);
注意
- pageSize代表页码容量。
- pageIndex代表当前页码。