bean封装 的二维数组,根据某个字段或某列排序

说明:前段时间写了一个二级菜单,需要从后台获取一个二维数组,子菜单的数组需要一级菜单的id,由于是异步请求,所以可能出现一级菜单数据和二级菜单数据对不上,当然了您可以使用同步请求网络数据或一个请求结束后使用递归(但这样不太好)。

代码简介:

    1.2个JavaBean,一个父级菜单bean(BaseBean),一个子菜单bean(ItemListBean);

    2.一个测试java文件包括三个方法,初始化子菜单list,初始化父级菜单list和排序方法;

    3.通过比较BaseBean的id和ItemListBean的father_name是否相等进行排序;

代码部分:

BaseBean代码:

public class BaseBean {
    private int id;
    private String name;
    private List<ItemListBean> beanList;



    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<ItemListBean> getBeanList() {
        return beanList;
    }

    public void setBeanList(List<ItemListBean> beanList) {
        this.beanList = beanList;
    }

    @Override
    public String toString() {
        return "BaseBean{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", beanList=" + beanList +
                '}';
    }
}

ItemListBean代码:

public class ItemListBean {
    private int id;
    private String name;
    private String father_name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getFather_name() {
        return father_name;
    }

    public void setFather_name(String father_name) {
        this.father_name = father_name;
    }

    @Override
    public String toString() {
        return "ItemListBean{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", father_name='" + father_name + '\'' +
                '}';
    }
}

测试Java文件部分

public class DyadicArray {

    public static void main(String[] args) {
        sortList();
    }

    /**
     * 排序,两层for循环生产新的的beanList
     */
    private static void sortList() {
        List<BaseBean> baseBeanList = initList();//原来list
        List<BaseBean> beanList = new ArrayList<>();//排序后的list
        
        for (int i = 0; i < baseBeanList.size(); i++) {
            BaseBean baseBean = baseBeanList.get(i);
            BaseBean baseBean2 =new BaseBean();//添加到新的list
            for (int j = 0; j < baseBeanList.size(); j++) {
                BaseBean baseBean1 = baseBeanList.get(j);
                
                //获取子菜list中一个father_name即可,
                if (baseBean.getId() == Integer.parseInt(baseBean1.getBeanList().get(0).getFather_name()) ){
                    baseBean2.setId(baseBean.getId());
                    baseBean2.setName(baseBean.getName());
                    baseBean2.setBeanList(baseBean1.getBeanList());
                    beanList.add(i,baseBean2);//添加的新的list并设置位置
                    break;
                }
            }
        }

        System.out.print(beanList);
    }


    /**
     * 初始化父级菜单list
     * @return 混乱的二维数组
     */
    private static List<BaseBean> initList() {
        List<BaseBean> baseBeanList = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            BaseBean baseBean = new BaseBean();
            baseBean.setId(i);
            baseBean.setName("father" + i);

            DyadicArray dyadicArray = new DyadicArray();
            //生成子菜单list
            List<ItemListBean> itemListBeans = dyadicArray.itemListBeans(2 - i);
            baseBean.setBeanList(itemListBeans);

            baseBeanList.add(baseBean);
        }

//        System.out.print(baseBeanList);
        return baseBeanList;
    }

    /**
     *根据父id生产子list,模拟异步请求生成的二维数组可能出现混乱的情况
     * @param father_id
     * @return 子菜单list
     */
    private List<ItemListBean> itemListBeans(int father_id) {
        List<ItemListBean> beanList = new ArrayList<>();
        for (int i = 0; i < 3; i++) {
            ItemListBean bean = new ItemListBean();
            bean.setId(i);
            bean.setFather_name(String.valueOf(father_id));
            bean.setName("child" + i);
            beanList.add(bean);
        }

        return beanList;
    }
}


猜你喜欢

转载自blog.csdn.net/qq_26014653/article/details/80743365
今日推荐