gpt4 book ai didi

java - NxN 网格,包含国家和每个国家都有一些人口

转载 作者:行者123 更新时间:2023-12-01 09:02:12 32 4
gpt4 key购买 nike

我必须模拟一种传染病在世界上由 NxN 个国家/地区传播的情况。最初世界上会有P个人,然后我们必须将这些人统一随机分配到每个国家。

我遇到的问题是如何为每个国家/地区分配一定数量的人员?

如果我有一个数组,例如

String[][] world = new String[2][2];

我现在有 4 个国家/地区,我可以使用 for 循环将它们显示为网格。

现在世界[0][0]是一个国家,应该指向一个包含人员的列表。

我尝试了列表中的列表

ArrayList<ArrayList<human>> world2 = new ArrayList<ArrayList<human>>();
ArrayList<human> country1 = new ArrayList<human>();


for(int i=0; i<5; i++){
human h = new human();
country1.add(i,h);
}

world2.add(country1);

ArrayList<human> country2 = new ArrayList<human>();
human h = new human();
country2.add(h);
world2.add(country2);

for (int i=0; i<world2.size(); i++){
System.out.println(world2.get(i));
}

但是我如何以网格格式打印它?

编辑1:

 String[][] world = new String[2][2];
for (int row = 0; row < world.length; row++) {
System.out.print("|");
for (int col = 0; col < world.length; col++) {
System.out.print(world[row][col] + "| ");
}
System.out.println();
}

输出:

|null| null| 
|null| null|

最佳答案

这将循环遍历整数的 3D 数组列表,并打印世界网格的每个 [行][列] 的所有整数的内容。你所要做的就是将你的 Human 对象补充到我有 Integer 的地方。

public ArrayList<ArrayList<ArrayList<Integer>>> create3D()
{
ArrayList<ArrayList<ArrayList<Integer>>> world = new ArrayList<ArrayList<ArrayList<Integer>>>();
for (int row = 0; row < 3; row++)
{
world.add(new ArrayList<ArrayList<Integer>>());
for (int col = 0; col < 3; col++)
{
world.get(row).add(new ArrayList<Integer>());
Random rand = new Random();
int randomNum = rand.nextInt((20 - 1) + 1) + 1;
for(int humanNumber = 0; humanNumber < randomNum; humanNumber++)
world.get(row).get(col).add(humanNumber);
}
System.out.println();
}

return world;
}

public void printHumanGrid(ArrayList<ArrayList<ArrayList<Integer>>> world)
{
for (int row = 0; row < world.size(); row++)
{
for (int col = 0; col < world.get(row).size(); col++)
{
System.out.print("|");
for(int humanNumber = 0; humanNumber < world.get(row).get(col).size(); humanNumber++)
System.out.print(world.get(row).get(col).get(humanNumber) + ",");

System.out.print("|");
}
System.out.println();
}
}

所以我有两个函数,一个用于填充 3D 数组列表,另一个用于将其打印出来。运行以下命令

printHumanGrid(create3D());

输出:

|0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,||0,1,2,3,4,5,6,7,8,9,||0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,|
|0,1,2,3,4,5,6,7,8,9,||0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,||0,1,2,3,|
|0,1,2,3,4,5,6,7,8,9,||0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,||0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,|

每一行都是网格中的一行。您现在可以添加它,也许添加格式化它的功能等等。祝你好运!

关于java - NxN 网格,包含国家和每个国家都有一些人口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41577891/

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