【问题标题】:Is it possible to create a nested LinkedObject [Java]是否可以创建嵌套的 LinkedObject [Java]
【发布时间】:2018-02-08 17:00:10
【问题描述】:

LinkedObjects 不是一个东西,但我之所以这么称呼它是因为我希望它模仿 LinkedList 的行为。

我特别想弄清楚的是是否可以从字符串数组中创建一个Object,它是一个String 和对正在进行的对象的引用。这将用于形成一个监管链,其中每个处理证据的人只知道他们将证据传递给了谁。

所以,假设我有 5 个人互相传递证据:

“弗雷德”、“杰克”、“简”、“贝丝”、“佐格”

从那个字符串数组中,我想创建如下所示的内容:

姓名:弗雷德 对象:杰克 姓名:杰克 对象:简 姓名:简 对象贝丝 姓名:贝丝 对象:佐格 姓名:佐格 对象:空


我问这个是因为我已经做了很多尝试来解决这个问题,但无济于事。我没有代码可提供,因为我的尝试失败了。我已尽力为这个问题找到某种答案。

【问题讨论】:

  • 不确定如何在数据结构级别上真正执行“每个处理证据的人只知道他们将证据传递给谁”中的“唯一”部分。即使你想出了某种链接结构,也只需要多参考一下就可以找到下一个人旁边的那个人,对吧?
  • 我不确定犯罪现场示例是用例还是只是描述问题的一种方式。如果是用例,我想可以为每个人扩展 LinkedObject 以隐藏下一个引用。

标签: java object linked-list singly-linked-list doubly-linked-list


【解决方案1】:

简单。

    class LinkedObject {
        final String name;
        LinkedObject next;

        LinkedObject(String name) {
            this.name = name;
        }
    }

    LinkedObject createLinkedList(List<String> names) {
        LinkedObject head = null;

        ListIterator<String> it = names.listIterator(names.size() - 1);
        while(it.hasPrevious()) {
            if(head == null) head = new LinkedObject(it.previous());
            else {
                LinkedObject o = new LinkedObject(it.previous());
                o.next = head;
                head = o;
            }
        }

        return head;
    }

我们正在创建一个类LinkedObject,其中包含一个字符串字段、存储数据和对下一个LinkedObject 的引用。第一个LinkedObject 被称为链表的“头”,描述了整个链表。这是singly linked list

从您的示例中,如果您的列表中有“beth”对象,则可以从 beth.next 的值中找到“zog”对象,依此类推。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多