Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除空的对象数组?_Java_Object_Jtable_Multidimensional Array - Fatal编程技术网

Java 如何删除空的对象数组?

Java 如何删除空的对象数组?,java,object,jtable,multidimensional-array,Java,Object,Jtable,Multidimensional Array,我定义一个对象: tempRes = new Object[100000][7]; 然后我把它填到100行。 现在,如何删除超过该值的每个对象(从tempRes[100]到tempRes[10000]) 我需要这个用于JTable。老实说,如果您不知道需要添加多少项,请不要使用数组。数组将为给定大小保留内存。使用列表或向量,添加项目,然后将其转换为数组。或者,如果您的用法(例如JTable)也可以使用向量,则根本不转换它 此外,如果您将数据存储在内存中的其他位置,并且列表非常庞大,那么实现您自

我定义一个对象:

tempRes = new Object[100000][7];
然后我把它填到100行。 现在,如何删除超过该值的每个对象(从tempRes[100]到tempRes[10000])


我需要这个用于JTable。

老实说,如果您不知道需要添加多少项,请不要使用数组。数组将为给定大小保留内存。使用
列表
向量
,添加项目,然后将其转换为数组。或者,如果您的用法(例如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()][]);
List tempRows=new ArrayList();
对于(int i=0;i<100;i++){
对象[]行=新对象[]{“This”、“Is”、“Just”、“Some”、“Example”、“Data”、“Here”};
添加(行);
}
对象[][]tempRes=(对象[][])tempRows.toArray(新对象[tempRows.size()][]);

老实说,如果不知道要添加多少项,就不要使用数组。数组将为给定大小保留内存。使用
列表
向量
,添加项目,然后将其转换为数组。或者,如果您的用法(例如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()][]);
List tempRows=new ArrayList();
对于(int i=0;i<100;i++){
对象[]行=新对象[]{“This”、“Is”、“Just”、“Some”、“Example”、“Data”、“Here”};
添加(行);
}
对象[][]tempRes=(对象[][])tempRows.toArray(新对象[tempRows.size()][]);

不能调整Java数组的大小。唯一的方法是将元素复制到一个较小的数组中,然后放弃原来的数组


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

不能调整Java数组的大小。唯一的方法是将元素复制到一个较小的数组中,然后放弃原来的数组

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

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]"
在数组上方的
列表上
有效Java第二版,第25项:首选列表而非数组

论模型/视图分离 仅仅因为
JTable
使用数组进行查看,并不意味着你也应该这样对数据建模。了解模型-视图-控制器体系结构如何工作。

关于
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]"
在数组上方的
列表上
有效Java第二版,第25项:首选列表而非数组

论模型/视图分离
仅仅因为
JTable
使用数组进行查看,并不意味着你也应该这样对数据建模。了解模型-视图-控制器体系结构如何工作。

您需要分页表模型。这会根据滚动到的位置动态地从数据库中获取数据。使用带有LIMIT语句的SQL查询将其链接到SQL数据库。代码将非常相似。

您需要分页表模型。这会根据滚动到的位置动态地从数据库中获取数据。使用带有LIMIT语句的SQL查询将其链接到SQL数据库。代码将非常相似。

Eee gad,这是一个大数组。我想知道为什么你们的要求如此之高。为什么需要一个包含700000个元素的数组?我对一个数据库进行查询,该数据库最多返回10000个结果。但大多数搜索返回多达100个结果。所以我知道我从数据库(SQLite)中得到了多少行,然后我删除了所有超过这些行的行。不要一次存储所有行。您可以使用一种机制,仅加载(使用限制)用户在表中滚动到的位置的结果。显示10000个结果只会使应用程序瘫痪。Eee gad,这是一个大阵列。我想知道为什么你们的要求如此之高。为什么需要一个包含700000个元素的数组?我对一个数据库进行查询,该数据库最多返回10000个结果。但大多数搜索返回多达100个结果。所以我知道我从数据库(SQLite)中得到了多少行,然后我删除了所有超过这些行的行。不要一次存储所有行。您可以使用一种机制,仅加载(使用限制)用户在表中滚动到的位置的结果。显示10000个结果只会使应用程序瘫痪。