如何在java中动态创建列表?
我正在为一个班级项目用java编程。 在我的项目中,我有飞机、机场和乘客 乘客目的地机场是随机创建的,但我必须将其添加到该目的地的乘客列表中 只要机场是从文件中读取的,因此它们可以变化,我如何根据这些机场创建列表 我想做的是:如何在java中动态创建列表?,java,arrays,list,Java,Arrays,List,我正在为一个班级项目用java编程。 在我的项目中,我有飞机、机场和乘客 乘客目的地机场是随机创建的,但我必须将其添加到该目的地的乘客列表中 只要机场是从文件中读取的,因此它们可以变化,我如何根据这些机场创建列表 我想做的是: List<Passenger> passengersToJFK = new ArrayList<Passenger>(); . . . if(passenger.destination == "JFK"){ passengersToJFK.
List<Passenger> passengersToJFK = new ArrayList<Passenger>();
.
.
.
if(passenger.destination == "JFK"){
passengersToJFK.add(passenger);
}
List passengersToJFK=new ArrayList();
.
.
.
如果(乘客目的地==“JFK”){
旅客地址:JFK.add(旅客);
}
问题是,正如我所说的,机场的数量和名称可能会有所不同,因此我如何使用一个通用表达式,根据机场文件创建列表,然后根据乘客目的地机场将乘客添加到这些列表中
我可以从文件中读取机场的数量,并创建相同数量的列表,但如何为这些列表指定不同的名称
提前感谢您可以在以乘客管理为中心的特定类别中,使用地图保存目的地或机场与乘客列表之间的关联登记簿
Map<String,List<Passenger>> flights = new HashMap<String,List<Passenger>>();
我建议您深入研究一些特定的多用途Java类,例如列表、映射和集合。您听起来似乎在原语、字符串和集合方面考虑得太多,而在对象方面考虑得不够 Java是一种面向对象的语言;开始考虑对象和封装 您的
乘客
课程有了一个良好的开端。继续使用机场
您是否将乘客
添加到机场
?不,我想它们属于航班
在编写更多代码之前,请仔细考虑一下您的问题。我可能会创建一个机场地图,以机场名称为键,以乘客列表为值
e、 g
Map airports=newhashmap();
机场。put(“JFK”,旅客到JFK);
您不应该专注于为列表对象的实际变量指定唯一的名称,而是创建一个从字符串(目的地id)到列表(前往该目的地的乘客)的地图,并在飞行中向该地图添加列表,将每个新列表链接到其相关目的地。根据需要更新地图中的列表。最好的方法是为所有三个对象创建对象
您可能有一个Airport对象,如下所示:
class Airport{
String name;
List Airplane airplanes;
}
class Airplane{
String name; // ?? or bodyType? or whatever else you need
List Passenger passengers;
}
头等机场{
字符串名;
列出飞机清单;
}
然后你会有一架这样的飞机:
class Airport{
String name;
List Airplane airplanes;
}
class Airplane{
String name; // ?? or bodyType? or whatever else you need
List Passenger passengers;
}
等级飞机{
字符串名称;//?或bodyType?或任何您需要的内容
列出乘客名单;
}
通过这种方式,您可以以一种更容易理解和处理的方式彼此合成对象
请注意,我将省略一些方法,例如Airport可能有一个类似“AddPlanet”的方法来添加另一个飞机,而Airport对象有一个addPassenger方法…您是否尝试创建多个列表?每架飞机的列表可能是?我想根据我拥有的机场数量创建新的ArrayList。如果我有3个机场,程序将创建3个列表。然后乘客将根据他们的目的地被添加到这些列表中。好的,我将更具体地说明我现在有什么。我有4个班,机场、飞机、乘客和登机。机场舱有乘客名单和飞机名单。飞机舱有一份乘客名单。乘客舱只有始发机场和目的地机场。董事会是所有其他事情发生的地方,快来吧。不过,您不必存储“String”,可以将其视为MapRule of thumb:如果您需要嵌套泛型类型,如Map
或其他什么,那么是时候创建一个类了<代码>列表
可能应该是机场
或者什么的。@BillK可能-但是你需要通过电话信或者什么的方式来查找机场。@BillK确实如此,但我认为这有点过分了。此外,想出一种方法来将这个简单的概念扩展到一个机场类,这将是OP的一个很好的练习:)(更不用说产生了hashcode
和equals
)。@corsiKa我首先建议一个特定的类来处理这个问题,不知怎的,我在编辑中删除了这个。。。
class Airplane{
String name; // ?? or bodyType? or whatever else you need
List Passenger passengers;
}