it-swarm-vi.com

Tạo một lớp nút trong Java

Vì vậy, tôi khá mới với Java và lập trình và tôi đã tự hỏi làm thế nào để tạo một lớp nút?

Cho đến nay tôi có:

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

}

Khá nhiều câu hỏi yêu cầu cho các phương thức đó vì vậy tôi đặt chúng xuống, nhưng câu hỏi tiếp theo yêu cầu tôi đề cập đến phần đầu và đuôi của các nút ItemInfoNode. Chỉ là một chút bối rối ở đây. Cảm ơn

EDIT: Cảm ơn các bạn đã giúp đỡ! Tôi đang cố gắng tạo một phương thức "insertInfo" để đưa thông tin như tên, giá, số thẻ, v.v. vào một nút. Làm thế nào để tôi đi về việc tạo ra phương pháp này?

Cho đến nay tôi đã nhận được điều này .. Tôi có một hàm tạo Iteminfo trong một lớp khác có tất cả những thứ này nhưng, tôi không chắc chắn làm thế nào để sử dụng nó/nếu tôi thậm chí phải làm ..

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

        head = new ItemInfoNode (Iteminfo, head);
    }
11
John

Chào mừng bạn đến với Java! Nút này giống như một khối, chúng phải được lắp ráp để làm những điều tuyệt vời! Trong trường hợp cụ thể này, các nút của bạn có thể đại diện cho một danh sách, một danh sách được liên kết, Bạn có thể xem một ví dụ ở đây:

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

CHỈNH SỬA:

Khai báo ItemInfo như sau:

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

Sau đó, bạn có thể sử dụng các nút của mình trong danh sách được liên kết như thế này:

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());
    }
}
10
David Pérez Cabrera