gpt4 book ai didi

java - 构造函数超出 65535 字节限制

转载 作者:行者123 更新时间:2023-11-30 02:59:36 25 4
gpt4 key购买 nike

我有一个类,用于存储游戏世界的地形。游戏世界由立方体组成,每个立方体都有一个地形。该信息存储为一个相当大的 3D 整数数组。

我现在遇到的问题是我的“ map ”太大而无法存储在类(或枚举)中。由于我真的不知道类和枚举之外的任何内容,因此我不知道该怎么办。

我应该用它制作一个 tekst 文件并读出它吗?如果是这样,我该怎么做?

一个不同的解决方案是将映射拆分为多个类或枚举,然后在运行时再次合并它们,但我也不知道如何做到这一点,这似乎是一个非常糟糕的解决方案。

编辑:这是世界地图的一部分:

 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 2 2 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 2 2 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 2 2 2 2 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 2 2 2 2 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0

一共有 40 个这样的 block (所以还有 38 个),每个 block 都代表某个 z 坐标的世界。我也有这个数组格式。如果您可以提供一些有关如何从文件中读取此内容的(示例)代码,那就太好了。

最佳答案

最好将其放入资源中。只需在您的类旁边创建一个文本文件(例如名为 map.txt),以您在问题中使用的相同格式放置您的世界地图,然后使用如下代码加载它:

public int[][][] loadMap() {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass()
.getResourceAsStream("map.txt"), StandardCharsets.ISO_8859_1))) {

List<int[][]> result = new ArrayList<>();
List<int[]> cur = new ArrayList<>();
String line;
while((line = reader.readLine()) != null) {
line = line.trim();
if(line.isEmpty() && !cur.isEmpty()) {
result.add(cur.toArray(new int[0][]));
cur.clear();
} else {
String[] cells = line.split("\\s+");
int[] row = new int[cells.length];
for(int i=0; i<cells.length; i++) row[i] = Integer.parseInt(cells[i]);
cur.add(row);
}
}
if(!cur.isEmpty())
result.add(cur.toArray(new int[0][]));
return result.toArray(new int[0][][]);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}

关于java - 构造函数超出 65535 字节限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com