java - Java 中对象数组的长度

标签 java arrays

我想计算有多少条记录包含一个对象数组。这是我的代码:

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/

相关文章:

java - Selenium 中切换窗口

php - 以数据库中的纯文本形式(而不是数组)显示用户的名字和姓氏

JavaScript,如何快速复制对象数组,但仅复制该对象中我需要的值

java - 将多维 Java 数组转换为字符串矩阵?

java - 过期后自动删除数据库行

java - 如何在Eclipse中检查WTP版本?

java - 显示 RTP MJPEG

java - Oracle 驱动程序内存泄漏 - Tomcat

python - 转换数组列表

python - 将值移出对象