首页 > 解决方案 > 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 的记录,就性能而言,对象数组是最佳选择吗?

标签: javaarrays

解决方案


数组具有固定长度,并.length为您提供该长度(4在您的情况下,基于您获得的输出)。数组实例没有返回实际引用非空值的数组索引数的方法。

您必须维护一个单独的int计数器才能获取此信息。此计数器还将让您知道可以在数组的哪个索引中分配新数据。

如果您想知道元素的实际数量,可以使用 anArrayList而不是数组。该size()方法会告诉你有多少元素被添加到List.

至于 10000 个对象的数组是否是最佳选择,这取决于您是否要填充该数组的全部/大部分,以及您是否永远不需要存储超过 10000 个对象。使用 anArrayList会给你更多的灵活性。


推荐阅读