关于类似的问题。How to dynamically create Lists in java?我有一个和被问到的人非常相似的问题。
在我的项目中,我有飞机,机场和乘客为PNR备案
旅客目的地机场是从数据库中导出的,但我必须将其添加到目的地列表中,并命名为airplanes。
因此数据库将包含如下内容
A380,JFK,PersonA
A380、JFK、PersonB
A330、LHR、PersonC
我的计划是从数据库中动态创建机场列表,并将具有相同目的地的乘客添加到列表中。
所以目前我有peronsA和personB和JFK,它们将在同一个列表中。虽然在LHR列表中只有personC会出现在LHR列表中,但有数十万条这样的记录和数百个机场列表需要创建,所以我必须动态创建这样的列表。
但问题是,我如何确定机场(JFK)列表是否已经存在,而不为该特定机场创建另一个列表?或者,是否有其他存储信息的方法?
伪代码:
while (dbrecord =true){
if(passenger.destination == "JFK"){
List<passenger> JFK(dynamic)= new ArrayList<passenger>();
JFK(dynamic).add(passenger)
}
发布于 2016-08-31 18:21:35
我不能百分之百地确定我是否理解了这个场景,但是避免重复的最好方法是使用像HashSet这样的集合结构
发布于 2016-08-31 18:21:20
你可以通过拥有一个Map<String, List<Passenger>>
来实现。
含义:每当您处理一个目的地时,您都会询问map是否包含该目的地。如果是,它已经是一个值,它是一个列表;如果不是,则为该键添加一个新列表,如下所示:
Map<String, List<Passenger>> listsByDestination = new HashMap<>;
String destination = ... wherever
if (listsByDestination.contains(destination)) {
... already known
} else {
listsByDestination.put(destination, new ArrayList<>());
}
诸若此类。
旁白:我看重Passenger,因为Java中的类名以UpperCase开头。
发布于 2016-08-31 18:26:32
像这样的东西可能会对你有帮助
Map<String, List<Passenger>> pasengerMaps = new HashMap();
if(pasengerMaps.contains("JFK")){
pasengerMaps.get("JFK").add(passenger)
}else{
pasengerMaps.put("JFK",new ArrayList<Passenger>());
}
https://stackoverflow.com/questions/39246881
复制相似问题