我目前正在为 opengles android 游戏创建 OBJ 导入器。我对 java 语言比较陌生,所以我不太清楚一些事情。
我有一个数组,它将保存模型中的顶点数(以及其他一些数组):
float vertices[];
问题是在使用提供给我的输入流读取文件之前,我不知道模型中有多少个顶点。
我可以根据需要填写吗?:
vertices[95] = 5.004f; //vertices was defined like the example above
还是我必须事先初始化它?
如果是后者,那么找出文件中顶点数的好方法是什么?一旦我使用 inputstreamreader.read() 读取它,它就会转到下一行,直到它读取整个文件。我唯一能想到的就是读取整个文件,计算顶点数,然后再次读取它以填充新初始化的数组。
有没有办法根据需要动态分配数据?
最佳答案
您可以使用 ArrayList,它会为您提供所需的动态大小。
List<Float> vertices = new ArrayList<Float>();
您可以像这样添加一个值:
vertices.add(5.0F);
列表会根据您的需求增长。
一些注意事项:ArrayList 将保存对象,而不是基本类型。因此它将您提供的浮点值存储为 Float 对象。但是,很容易从中得到原始的浮点值。
如果您绝对需要一个数组,那么在您读入整个值列表后,您可以轻松地从列表中获取一个数组。
您可以开始阅读有关 Java 集合的信息 here .
关于java - 在java中填充未初始化的数组? (或解决方法!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550911/