building/demolition 历史的数据结构
Data Structure for building/demolition history
这是问题所在:
我必须创建一个模拟城市的程序,特别是它的建筑物,以确定其天际线的平均高度和其他值。我的问题是选择数据结构:我需要一些东西来计算不同年份的这个值:例如,用户可以要求 2016 年的天际线值,然后要求 2020 年的最高建筑物。
每个建筑物都有一个字符串作为密钥,但是一旦它们被拆除,相同的密钥又可用。
这是一个大学项目,所以我只是想问点小费;我需要比 "how".
了解更多 "what" 和 "why"
我用Java.
谢谢。
您正在寻找某种多级词典的地图。
您可以有一个 2 级字典,例如 { 2018:{height1, height2}, 2002:{} ... }
其中每个内部词典都是当年所有建筑物的高度(这是关键)。此外,字典速度很快(尽管您正在用性能换 space)。
希望对您有所帮助!
如果建筑钥匙是唯一的,你会得到这样的 class:
class Building
Key
Name
Height
YearBuilt
YearDemolished
您可以通过对建筑物集合进行简单循环来解决您的问题:
for each building
if (building.yearBuilt <= year && building.yearDemolished >= year)
{
// the building was standing during that year
}
如果密钥可以重复使用,您仍然需要保留历史信息。如果你把它和建筑物放在一起,那么你就会得到类似的东西:
class HistoricalInfo
Name
Height
YearBuilt
YearDemolished
class Building
Key
HistoricalInfo[] // some collection (array, list, etc.)
你的循环变得有点复杂:
for each building
for each building.historyInfo
if (historyInfo.YearBuilt <= year && historyInfo.YearDemolished >= year)
{
// this instance of the key was standing during that year
}
这是问题所在: 我必须创建一个模拟城市的程序,特别是它的建筑物,以确定其天际线的平均高度和其他值。我的问题是选择数据结构:我需要一些东西来计算不同年份的这个值:例如,用户可以要求 2016 年的天际线值,然后要求 2020 年的最高建筑物。
每个建筑物都有一个字符串作为密钥,但是一旦它们被拆除,相同的密钥又可用。
这是一个大学项目,所以我只是想问点小费;我需要比 "how".
了解更多 "what" 和 "why"我用Java.
谢谢。
您正在寻找某种多级词典的地图。 您可以有一个 2 级字典,例如 { 2018:{height1, height2}, 2002:{} ... } 其中每个内部词典都是当年所有建筑物的高度(这是关键)。此外,字典速度很快(尽管您正在用性能换 space)。
希望对您有所帮助!
如果建筑钥匙是唯一的,你会得到这样的 class:
class Building
Key
Name
Height
YearBuilt
YearDemolished
您可以通过对建筑物集合进行简单循环来解决您的问题:
for each building
if (building.yearBuilt <= year && building.yearDemolished >= year)
{
// the building was standing during that year
}
如果密钥可以重复使用,您仍然需要保留历史信息。如果你把它和建筑物放在一起,那么你就会得到类似的东西:
class HistoricalInfo
Name
Height
YearBuilt
YearDemolished
class Building
Key
HistoricalInfo[] // some collection (array, list, etc.)
你的循环变得有点复杂:
for each building
for each building.historyInfo
if (historyInfo.YearBuilt <= year && historyInfo.YearDemolished >= year)
{
// this instance of the key was standing during that year
}