将内容添加到像这样的float数组的末尾

时间:2010-07-08 13:45:58

标签: java

嘿伙计们,我有以下的浮点阵......

         public static float camObjCoord[] = new float[] {



             -2.0f, -1.5f,  -6.0f,
              2.0f, -1.5f,  -6.0f,
             -2.0f,  1.5f,  -6.0f,
              2.0f,  1.5f,  -6.0f,

             -2.0f, -1.5f, -10.0f,
             -2.0f,  1.5f, -10.0f,
              2.0f, -1.5f, -10.0f,
              2.0f,  1.5f, -10.0f,

             -2.0f, -1.5f,  -6.0f,
             -2.0f,  1.5f,  -6.0f,
             -2.0f, -1.5f, -10.0f,
             -2.0f,  1.5f, -10.0f,

              2.0f, -1.5f, -10.0f,
              2.0f,  1.5f, -10.0f,
              2.0f, -1.5f,  -6.0f,
              2.0f,  1.5f,  -6.0f,

             -2.0f,  1.5f,  -6.0f,
              2.0f,  1.5f, -6.0f,
             -2.0f,  1.5f, -6.0f,
              2.0f,  1.5f, -10.0f,

             -2.0f, -1.5f,  -6.0f,
             -2.0f, -1.5f, -10.0f,
              2.0f, -1.5f,  -6.0f,
              2.0f, -1.5f, -10.0f,



                 -2.0f,  2.5f,  -6.0f,
                  2.0f,  2.5f,  -6.0f,
                 -2.0f,  4.5f,  -6.0f,
                  2.0f,  4.5f,  -6.0f,

                 -2.0f,  2.5f, -10.0f,
                 -2.0f,  4.5f, -10.0f,
                  2.0f,  2.5f, -10.0f,
                  2.0f,  4.5f, -10.0f,

                 -2.0f,  2.5f,  -6.0f,
                 -2.0f,  4.5f,  -6.0f,
                 -2.0f,  2.5f, -10.0f,
                 -2.0f,  4.5f, -10.0f,
                                      2.0f,  2.5f, -10.0f,
                  2.0f,  4.5f, -10.0f,
                  2.0f,  2.5f,  -6.0f,
                  2.0f,  4.5f,  -6.0f,

                 -2.0f,  4.5f,  -6.0f,
                  2.0f,  4.5f, -6.0f,
                 -2.0f,  4.5f, -6.0f,
                  2.0f,  4.5f, -10.0f,

                 -2.0f,  2.5f,  -6.0f,
                 -2.0f,  2.5f, -10.0f,
                  2.0f,  2.5f,  -6.0f,
                  2.0f,  2.5f, -10.0f,
        };

我之后有一个方法,我想在数组的末尾添加值,但它告诉我它找不到camObjCoord,任何想法为什么?

3 个答案:

答案 0 :(得分:3)

无法添加到数组,因为数组的大小不能更改。因此,您要么使用Collection结构,要么创建一个更大的数组,将旧值复制到新数组,并在最后用新值填充空白区域。

但这不是问题 - 你将能够访问数组

  • 来自同一班级的camObjCoord
  • 来自同一个包中的类的MyClass.camObjCoord(假设MyClass是包含camObjCoord
  • 的类 如果此类导入MyClass.camObjCoord ,则来自其他包中的类的MyClass

答案 1 :(得分:3)

一些要点:

  • Java中的数组是固定长度的对象。一旦创建了数组,就无法修改它的长度。
    • 您可以创建大小为N+1另一个数组,复制所有N元素,然后添加额外元素,但这是一个代价高昂的高效率{{1操作添加单个元素
  • 根据名称,格式和数字中的模式,看起来每3 O(N)是一个3D点。您应该认真考虑定义float自定义类型来保存数据。
  • Effective Java 2nd Edition,首选列表到数组;你应该考虑使用Point3D
  • 除非您有充分理由使用List<Point3d>,否则应使用float代替

答案 2 :(得分:0)

它可能没有告诉你它找不到变量,而是你不允许你向数组添加项目。数组是固定长度的;如果您想要一个可扩展的类数据结构,请使用ArrayList。或者,最初使用您需要的大小来定义数组。