Creating a node class in Java

后端 未结 1 1008
盖世英雄少女心
盖世英雄少女心 2021-02-07 12:53

So I\'m fairly new to Java and programming and I was wondering how to create a node class?

So far I have:

public class ItemInfoNode{ 
    private ItemIn         


        
相关标签:
1条回答
  • 2021-02-07 13:38

    Welcome to Java! This Nodes are like a blocks, they must be assembled to do amazing things! In this particular case, your nodes can represent a list, a linked list, You can see an example here:

    public class ItemLinkedList {
        private ItemInfoNode head;
        private ItemInfoNode tail;
        private int size = 0;
    
        public int getSize() {
            return size;
        }
    
        public void addBack(ItemInfo info) {
            size++;
            if (head == null) {
                head = new ItemInfoNode(info, null, null);
                tail = head;
            } else {
                ItemInfoNode node = new ItemInfoNode(info, null, tail);
                this.tail.next =node;
                this.tail = node;
            }
        }
    
        public void addFront(ItemInfo info) {
            size++;
            if (head == null) {
                head = new ItemInfoNode(info, null, null);
                tail = head;
            } else {
                ItemInfoNode node = new ItemInfoNode(info, head, null);
                this.head.prev = node;
                this.head = node;
            }
        }
    
        public ItemInfo removeBack() {
            ItemInfo result = null;
            if (head != null) {
                size--;
                result = tail.info;
                if (tail.prev != null) {
                    tail.prev.next = null;
                    tail = tail.prev;
                } else {
                    head = null;
                    tail = null;
                }
            }
            return result;
        }
    
        public ItemInfo removeFront() {
            ItemInfo result = null;
            if (head != null) {
                size--;
                result = head.info;
                if (head.next != null) {
                    head.next.prev = null;
                    head = head.next;
                } else {
                    head = null;
                    tail = null;
                }
            }
            return result;
        }
    
        public class ItemInfoNode {
    
            private ItemInfoNode next;
            private ItemInfoNode prev;
            private ItemInfo info;
    
            public ItemInfoNode(ItemInfo info, ItemInfoNode next, ItemInfoNode prev) {
                this.info = info;
                this.next = next;
                this.prev = prev;
            }
    
            public void setInfo(ItemInfo info) {
                this.info = info;
            }
    
            public void setNext(ItemInfoNode node) {
                next = node;
            }
    
            public void setPrev(ItemInfoNode node) {
                prev = node;
            }
    
            public ItemInfo getInfo() {
                return info;
            }
    
            public ItemInfoNode getNext() {
                return next;
            }
    
            public ItemInfoNode getPrev() {
                return prev;
            }
        }
    }
    

    EDIT:

    Declare ItemInfo as this:

    public class ItemInfo {
        private String name;
        private String rfdNumber;
        private double price;
        private String originalPosition;
    
        public ItemInfo(){
        }
    
        public ItemInfo(String name, String rfdNumber, double price, String originalPosition) {
            this.name = name;
            this.rfdNumber = rfdNumber;
            this.price = price;
            this.originalPosition = originalPosition;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getRfdNumber() {
            return rfdNumber;
        }
    
        public void setRfdNumber(String rfdNumber) {
            this.rfdNumber = rfdNumber;
        }
    
        public double getPrice() {
            return price;
        }
    
        public void setPrice(double price) {
            this.price = price;
        }
    
        public String getOriginalPosition() {
            return originalPosition;
        }
    
        public void setOriginalPosition(String originalPosition) {
            this.originalPosition = originalPosition;
        }
    }
    

    Then, You can use your nodes inside the linked list like this:

    public static void main(String[] args) {
        ItemLinkedList list = new ItemLinkedList();
        for (int i = 1; i <= 10; i++) {
            list.addBack(new ItemInfo("name-"+i, "rfd"+i, i, String.valueOf(i)));
    
        }
        while (list.size() > 0){
            System.out.println(list.removeFront().getName());
        }
    }
    
    0 讨论(0)
提交回复
热议问题