我正在创建一个系统,使用GUI形式的链表存储数据。我在存储和显示链表时遇到了一些问题。看来我输入数据后,它并没有存储到链表中
我所做的是一个图书馆系统,所以我需要的是将书名、作者名、ISBN号和图书的拷贝数存储到链表中的单个节点中。这些信息来自用户输入,例如JTextField1。我的讲师教过我如何插入单个数据,但现在我需要插入多个数据。
我在Node类中重新创建了构造函数和getter方法,并在LinkedList类中更改了它。但由于某种原因,数据似乎没有添加到LinkedList中,当我在TextArea中显示列表时,它显示的只是空,而不是我刚才输入的数据。这是为什么?
这是我的节点类:
public class Node
{
String name;
String author;
int isbn;
int number;
Node next;
Node()
{
name = null;
author = null;
isbn = 0;
number = 0;
next = null;
}
Node(String name, String author, int isbn, int number)
{
this.name = name;
this.author = author;
this.isbn = isbn;
this.number = number;
}
String getName()
{
return name;
}
String getAuthor()
{
return author;
}
int getisbn()
{
return isbn;
}
int getnumber()
{
return number;
}
Node getNext()
{
return next;
}
void setNext(Node next)
{
this.next=next;
}
}
这是我的链表类:
public class LinkedList
{
Node node = new Node();
Node head;
LinkedList()
{
head=null;
}
Node getHead()
{
return head;
}
public void addNode(String name, String author, int isbn, int number)
{
Node newNode = new Node(name, author, isbn, number);
newNode.next = head;
head = newNode;
JOptionPane.showMessageDialog(null,"Node added to the list.");
}
}
public String displayNode()
{
Node current = head;
String output = "";
while(current!= null)
{
output+="Book Name: "+current.getName()+" Author: "+current.getAuthor()+" ISBN Number: "+current.getisbn()+" Number of copies: "+current.getnumber();
current=current.getNext();
}
return(output+"NULL");
}
这是我的AddBook JFrame中的内容:
public class AddBook extends javax.swing.JFrame {
static String name;
static String author;
static int isbn;
static int number;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
LinkedList list = new LinkedList();
list.addNode(jTextField2.getText(), jTextField3.getText(), Integer.parseInt(jTextField4.getText()), Integer.parseInt(jTextField1.getText()));
}
}
另一个带有显示的JFrame:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
LinkedList list = new LinkedList();
jTextArea1.setText(list.displayNode());
}
数据类:
public class Data {
String name;
String author;
int isbn;
int number;
public Data(String name, String author, int isbn, int number)
{
}
}
有人能帮我吗?谢谢.
最简单的方法是为数据创建sme类型的“Box”类,并用int num;
替换它,例如:
public class Box {
String name;
String author;
Box(String name, String author) {
this.name = name;
this.author = author;
}
}
您在Node和LinkedList中处理它,就像您的int一样,但是插入看起来是这样的:
yourList.add(new Box("book", "author"));
如果希望将列表用于不同类型,则必须了解泛型,例如:https://docs.oracle.com/javase/tutorial/java/generics/index.html
考虑一个节点,比如bucket,它可以包含任何数据,而不仅仅是一个简单的数字(如大多数教程所描述的)。
在节点
类中,可以使用任何需要的引用类型,例如列表
,而不是int num
字段:
public class Node {
List<Integer> data;
...
}
在这种情况下,您还需要重写构造函数和getter(通过分别更改参数类型和返回类型)。
另一个不破坏单一责任原则的好解决方案是使用包装器类(例如data
):
class Data {
private Integer i;
private String s;
}
我有以下代码: 基本上,当我运行上述代码时,总金额的总和应该是,但取而代之的是'1.60E 4。请告知我在这里错过了什么,以获得正确的金额?
但一个奇怪的错误正在发生。当我检查Namenode GUI或dfsadmin client以获取datanodes列表时,它只随机显示一个datanode,即有时是datanode-0,有时是DataNode-1。它从不显示两个/所有数据阳极。 这里会有什么问题?我甚至在用无头服务。请帮忙。 运行hdfs dfsadmin-report只随机显示一个datanode,例如有时datanode-0和
当我使用删除链接添加此行时,数据表不会应用于我的表。 没有特定的线都工作正常。 请帮忙。短暂性脑缺血发作
我希望有人能帮我解决以下问题。我正在创建一个Java桌面应用程序,其中有一个包含两个JPanel的JPanel topicPanel;TopicButton面板包含JButton createEntryButton和topicTabCardsPanel,后者实现CardLayout。单击createEntryButton时,我试图动态创建并添加一个新的JPanel entryPanel,其中包含J
我正在尝试将ArrayList添加到Jlist,但我给出的唯一理解方法是编写如下代码: 让我困惑的是,为什么我不能像这样直接把数组列表添加到Jlist中: 先谢谢你。
因此,对于我的学校项目,我们将使用SQL数据库,并在JFrame面板上显示值。 为了在JTable中显示数据,我们必须要求下一个语法:(def)