如何删除空数组?

时间:2010-05-22 19:53:33

标签: java object jtable multidimensional-array

我定义了一个对象:

tempRes = new Object[100000][7];

现在之后我将其填充到例如100行。 现在如何删除过去的每个对象(从tempRes [100]太tempRes [10000])。

我需要这个用于JTable。

4 个答案:

答案 0 :(得分:3)

老实说,如果您不知道要添加多少项,请不要使用数组。数组将保留给定大小的内存。使用ListVector,添加项目,稍后将其转换为数组。或者如果您的用法(例如JTable)也可以使用向量,则根本不进行转换。

此外,如果您将数据存储在内存中的其他位置并且列表很大,则实现您自己的TableModel子类(当您滚动到行时动态调用它们,您将不得不在它们上构建它们然后需求)比将所有行首先渲染成数组要高效得多。

列表示例:

    List<Object[]> tempRows = new ArrayList<Object[]>();
    for (int i = 0; i < 100; i++) {
        Object[] row = new Object[] {"This", "Is", "Just", "Some", "Example", "Data", "Here"};
        tempRows.add(row);
    }
    Object[][] tempRes = (Object[][]) tempRows.toArray(new Object[tempRows.size()][]);

答案 1 :(得分:1)

java.util.Arrays

它有一个copyOf方法,可以用来取一个数组的“head”部分。

String[] names = { "Alice", "Bob", "Carol", "Dean" };
names = Arrays.copyOf(names, 2);
System.out.println(Arrays.toString(names));
// prints "[Alice, Bob]"

在数组上List

Effective Java 2nd Edition,Item 25:首选列表到

关于模型/视图分离

仅仅因为JTable使用数组进行查看,并不意味着你应该如何建模数据。了解模型 - 视图 - 控制器架构如何工作。

答案 2 :(得分:1)

您需要分页表模型。 http://www.java2s.com/Code/Java/Swing-JFC/AquickapplicationthatdemonstratesthePagingModel.htm。这将根据您向上滚动的位置动态地从数据库中获取数据。使用带有LIMIT语句的SQL查询将其链接到SQL数据库。代码将非常相似。

答案 3 :(得分:0)

您无法调整Java数组的大小。唯一的方法是将元素复制到较小的数组并放弃原始元素。

如果要动态调整大小,请使用ArrayList。

相关问题