我想计算有多少条记录包含一个对象数组。这是我的代码:
public class PoS {
int id;
String name;
double pos_gps_lat;
double pos_gps_long;
public PoS(int id, String name,double pos_gps_lat, double pos_gps_long) {
this.id=id;
this.name=name;
this.pos_gps_lat=pos_gps_lat;
this.pos_gps_long=pos_gps_long;
}
}
我只添加了一 (1) 条记录作为研究员
PoS pos[]=new PoS[1]; // updated as requested in comments
pos[0]=new PoS(1,"test",12.123456, 12.123456);
但是我得到了 4 结果:
System.out.printf(pos.length);
问题1: 我如何获取记录数而不是对象数组包含的元素数?
问题2: 我将使用超过 10 K 的记录,就性能而言,对象数组是最佳选择吗?
最佳答案
数组具有固定长度,.length
为您提供该长度(根据您获得的输出,在您的情况下为 4
)。数组实例没有方法返回实际引用非空值的数组索引的数量。
您必须维护一个单独的 int
计数器才能获取此信息。该计数器还将让您知道可以在数组的哪个索引中分配新数据。
如果您想知道元素的实际数量,可以使用ArrayList
而不是数组。 size()
方法将告诉您有多少元素已添加到 List
中。
至于 10000 个对象的数组是否是最佳选择,这取决于您是否要填充该数组的全部/大部分,以及您是否永远不需要存储超过 10000 个对象。使用 ArrayList
将为您提供更大的灵 active 。
关于java - Java 中对象数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58540129/