java - Java中对象数组的长度
问题描述
我想计算有多少记录包含一个 Array of Objects 。这是我的代码:
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
计数器才能获取此信息。此计数器还将让您知道可以在数组的哪个索引中分配新数据。
如果您想知道元素的实际数量,可以使用 anArrayList
而不是数组。该size()
方法会告诉你有多少元素被添加到List
.
至于 10000 个对象的数组是否是最佳选择,这取决于您是否要填充该数组的全部/大部分,以及您是否永远不需要存储超过 10000 个对象。使用 anArrayList
会给你更多的灵活性。
推荐阅读
- python - Python中的“无”是什么意思?
- java - 我需要将 UI 初始化代码放在 IntelliJ Idea 插件中的什么位置?
- android - FragmentPagerAdapter 使用 getChildFragmentManager() 崩溃
- html - 更改信用卡占位符颜色
- c# - 手动创建的 UserControl 未触发 SizeChanged 事件
- google-chrome - 在本地服务器中使用地理定位 API
- haskell - 访问特定 ADT 时出错
- jquery - jQuery 输出图像标题/描述不起作用?
- javascript - 避免 iframe 的 URL 被其他人使用
- php - Slim 容器的正确接口是什么?