栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

一种遍历对象数组方法(使用了mybatis-plus)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一种遍历对象数组方法(使用了mybatis-plus)

实体类: 

public class Records implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private Integer typeId;

    private Double num;

    private Double num2;

    private Integer houseId;

    //  进行逻辑映射
    @TableField(exist = false)
    private House house;

    //  进行逻辑映射
    @TableField(exist = false)
    private PropertyType propertyType;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date upTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date onTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date checkTime;

    public House getHouse() {
        return house;
    }

    public void setHouse(House house) {
        this.house = house;
    }

    public PropertyType getPropertyType() {
        return propertyType;
    }

    public void setPropertyType(PropertyType propertyType) {
        this.propertyType = propertyType;
    }

    private String meter;

    private String remarks;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }
    public Double getNum() {
        return num;
    }

    public void setNum(Double num) {
        this.num = num;
    }
    public Double getNum2() {
        return num2;
    }

    public void setNum2(Double num2) {
        this.num2 = num2;
    }
    public Integer getHouseId() {
        return houseId;
    }

    public void setHouseId(Integer houseId) {
        this.houseId = houseId;
    }
    public Date getUpTime() {
        return upTime;
    }

    public void setUpTime(Date upTime) {
        this.upTime = upTime;
    }
    public Date getOnTime() {
        return onTime;
    }

    public void setOnTime(Date onTime) {
        this.onTime = onTime;
    }
    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }
    public String getMeter() {
        return meter;
    }

    public void setMeter(String meter) {
        this.meter = meter;
    }
    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    @Override
    public String toString() {
        return "Records{" +
            "id=" + id +
            ", typeId=" + typeId +
            ", num=" + num +
            ", num2=" + num2 +
            ", houseId=" + houseId +
            ", upTime=" + upTime +
            ", onTime=" + onTime +
            ", checkTime=" + checkTime +
            ", meter=" + meter +
            ", remarks=" + remarks +
        "}";
    }
}

 控制器:

@RestController
@RequestMapping("/recordsServe")
public class RecordsController {

    @Autowired
    IRecordsService recordsService;

    @Autowired
    IHouseService houseService;

    @Autowired
    IPropertyTypeService propertyTypeService;

    @GetMapping
    public Result findRecordsPage(Integer currentPage,Integer pageSize,String numbers){
        IPage page = new Page<>(currentPage,pageSize);

        //条件查询
        QueryWrapper qr = new QueryWrapper<>();

        IPage recordsIPage = recordsService.page(page);

        Long total = recordsIPage.getTotal();
        List records = recordsIPage.getRecords();

//遍历对象数组的方法
        records.forEach(
                record->{
                    //  遍历设置PropertyType
                    PropertyType propertyType = propertyTypeService.getById(record.getTypeId());
                    record.setPropertyType(propertyType);
                    //  遍历设置House
                    House house = houseService.getById(record.getHouseId());
                    record.setHouse(house);
                }
        );


        return Result.getFail();
    }
}

原理:

查源码可以知道:List的父类Collection接口继承了Iterable接口。

public interface Collection extends Iterable {
}

 而查看Iterable接口源码,可以知道forEach这个方法对输入的参数进行了遍历,并实现了Consumer这个类的accept方法

public interface Iterable {
default void forEach(Consumer action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }
}

点开 Consumer类,查看accept(t)方法

    void accept(T t);

于是乎便有了一下代码:

List records = recordsIPage.getRecords();

//遍历对象数组的方法
        records.forEach(
                record->{
                    //  遍历设置PropertyType
                    PropertyType propertyType = propertyTypeService.getById(record.getTypeId());
                    record.setPropertyType(propertyType);
                    //  遍历设置House
                    House house = houseService.getById(record.getHouseId());
                    record.setHouse(house);
                }
        );

参考文章:

记forEach(System.out::println)用法_africanviolet的博客-CSDN博客

JAVA的forEach用法_SwTesting的博客-CSDN博客_java中foreach循环用法

forEach(System.out::println) - 简书

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929959.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号