public class LinkedList {
    private Node head;

    private static class Node {
        T data;
        Node next;

        public Node(T data) {
            this.data = data;
        }
    }

    public void add(T data) {
        Node newNode = new Node<>(data);
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }

    public void remove(T data) {
        if (head == null) {
            return;
        }
        if (head.data.equals(data)) {
            head = head.next;
            return;
        }
        Node current = head;
        while (current.next != null) {
            if (current.next.data.equals(data)) {
                current.next = current.next.next;
                return;
            }
            current = current.next;
        }
    }

    public void printList() {
        Node current = head;
        while (current != null) {
            System.out.print(current.data + " ");
            current = current.next;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        LinkedList list = new LinkedList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.printList();
        list.remove(2);
        list.printList();
    }
}

实现一个简单的单链表数据结构,提供添加、删除和打印功能。可自定义泛型类型并在main方法中进行示例操作。