Création d'une classe node en Java


Je suis donc assez nouveau en Java et en programmation et je me demandais comment créer une classe node?

Jusqu'à présent, j'ai:

public class ItemInfoNode{ 
    private ItemInfoNode next;
    private ItemInfoNode prev;
    private ItemInfo info;
    public ItemInfoNode(ItemInfo info, ItemInfoNode next, ItemInfoNode prev){
        info = info;
        next = next;
        prev = prev;
    }
    public void setInfo(ItemInfo info){
        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;
    }

}

À peu près la question posée pour ces méthodes, donc je les pose mais, la question suivante me demande de me référer à la tête et à la queue des nœuds ItemInfoNode. Juste un peu confus ici. Merci

EDIT: Merci pour l'aide les gars! J'essaie de créer une méthode "InsertInfo" qui met des informations comme le nom, le prix, le numéro d'étiquette, etc. Dans un nœud. Comment dois-je aller sur la création de cette méthode?

Jusqu'à présent, j'ai eu ceci.. J'ai un constructeur Iteminfo dans une classe différente qui a tout cela mais, je ne sais pas comment l'utiliser / si je suis même censé le faire..

public void InsertInfo(String name, String rfdnumber, double price, String original_position){

        head = new ItemInfoNode (Iteminfo, head);
    }
Author: John, 2015-07-21

1 answers

Bienvenue sur Java! Cette Nœuds sont comme des blocs, ils doivent être assemblés pour faire des choses étonnantes! Dans ce cas particulier, vos nœuds peuvent représenter une liste, une liste chaînée, Vous pouvez voir un exemple ici:

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;
        }
    }
}

MODIFIER:

Déclarer ItemInfo comme ceci:

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;
    }
}

Ensuite, Vous pouvez utiliser vos nœuds dans la liste chaînée comme ceci:

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());
    }
}
 9
Author: David Pérez Cabrera, 2015-07-21 17:16:58