这是在java中添加书籍列表的最佳方式

时间:2011-01-17 05:50:29

标签: java multidimensional-array

我正在构建一个简单的程序,我在Jtable中预先填写了名称,作者,价格的书籍,以便我可以在列表中显示它们。

最初我创建了2d数组,它运行正常。

但现在我想让我的程序在该列表中动态添加或删除。

但是数组不能这样做,这是最好的方法。用例子会很好

3 个答案:

答案 0 :(得分:1)

您可以使用通用ArrayList。 如果您的图书信息大小不变,则可以创建ArrayList个数组。以下是简单String数组的示例,如果这是您使用的容器,请将其更改为JTable

private ArrayList<String[]> books = new ArrayList<String[]>(); 

您不必担心使用初始大小初始化数组列表,例如数组。

String[] bookInfo1  = new String[3];
   bookInfo1[0] = "Adam Smith";  
   bookInfo1[1] = "Some Title";
   bookInfo1[2] = "1981";   
 books.add(bookInfo1);

答案 1 :(得分:1)

  

在Jtable中

使用DefaultTableModel。您可以使用addRow(...)方法动态添加行。

或者,如果您要创建要在JTable中显示的“预订”对象,则可以使用Bean Table Model

答案 2 :(得分:1)

我个人建议您定义自己的TableModel接口实现(可能是通过子类化AbstractTableModel)。然后,正如Andrezj建议的那样,您可以在内部使用ArrayList来保存数据。使用JTable查看this tutorial。它的功能更多,但它可以让您更好地控制数据。

如果您不想这样做,那么您可以使用DefaultTableModel,这允许您add rows dynamically,但它不是类型安全的,如果您使用{{1},则不是线程安全的提供数据。事实上,我不确定当您以Vector的形式提供行时会发生什么,然后在将Vector添加到表后将其更改。如果Vector使其拥有(深?)副本,那么它可能不是问题,但我不知道是否这样做。也许有人知道可以发表评论