【问题标题】:How to read recursive List in java如何在java中读取递归列表
【发布时间】:2014-09-21 21:26:13
【问题描述】:

我无法读取项目的递归列表。

我有一个类别树,每个类别都有孩子,而孩子又可以有孩子(不知道有多少)。

这是我的课:

public class Category {
    public int HasChild = 0;
    public int level;
    public boolean isOpened = false;
    @ElementList(entry = "Category", required = false, empty = true, data = true, inline = true)
    private List<Category> childrenCategory;

    @Attribute(required = false)
    private String id;
    @ElementList(entry = "Name", inline = true, required = false)
    public List<Name> name;

    public List<Category> getCategoy() {
        return childrenCategory;
    }

    public void setCategoy(List<Category> categoy) {
        childrenCategory = categoy;
    }

    public String getId() {
        return id;
    }

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

    public List<Name> getName() {
        return name;
    }

    public void setName(List<Name> name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Category [childrenCategory=" + childrenCategory + ", id=" + id
                + "]";
    }

}

这是我的函数,其中一个 foreach 控件将:

    void function(Category cat) {
        for (Category iterable_element : cat.getCategoy()) {
            Log.i("link", iterable_element.toString());
            if (cat.getCategoy() != null) {
                //
//              holder.btn.setEnabled(true);
//              cat.HasChild = 1;
                Log.i("link", "isEmpity");

            }
        }

这里是你调用函数的地方,这里是 oject 的初始步骤:

object = category;
            function(object);

我的问题是我可以通过这种方式进行控制,如果我想访问那些二级应该做的事情,事情只会是顶级:

object = category.getCategoy().get(0); 函数(对象);

但这是不可能的,因为一切都必须是递归的,而不是手写的。

我应该读过第一个迭代项目到下一个级别

帮帮我,谢谢

【问题讨论】:

    标签: java android list class recursion


    【解决方案1】:

    递归调用函数。这是代码。

    void function(Category cat) {
        if (cat.getCategoy().size() > 0) {
            for (Category iterable_element : cat.getCategoy()) {
                log.i("Has "+cat.getCategoy().size() + "  children.");
                function(iterable_element);  // again call it recursively
            }
        } 
        else {
            log.i("No children.");
        }
    }
    

    【讨论】:

    • 非常感谢您帮了我很多忙!
    猜你喜欢
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多