美文网首页
java参照linux内核链表的实现方式

java参照linux内核链表的实现方式

作者: Source_ | 来源:发表于2020-06-29 09:54 被阅读0次

    链表是一种很简单的数据结构,java里面的LinkedList提供了具体实现

    private static class Node<E> {
            E item;
            Node<E> next;
            Node<E> prev;
    
            Node(Node<E> prev, E element, Node<E> next) {
                this.item = element;
                this.next = next;
                this.prev = prev;
            }
        }
    

    通常大部分链表都是这样的实现方式,将数据载体放入数据结构中,但是Linux内核的链表实现恰恰相反,它将数据结构放入到数据载体中

    struct list_head {
        struct list_head *next, *prev;    
    };
    

    如果想让某个结构体成为链表,只需要加入这个成员变量即可

    struct person 
    { 
        int age; 
        char name[20];
        struct list_head list; 
    };
    

    这种实现方式有显而易见的好处,在java开放过程中,如果想让某个实体具有链表的功能,不再需要创建新的数据结构,而可以直接让实体本身直接具有链表的功能,只需要在实体类中添加一个成员变量即可实现,对原有的代码侵入性非常小

    相关文章

      网友评论

          本文标题:java参照linux内核链表的实现方式

          本文链接:https://www.haomeiwen.com/subject/pjznfktx.html