如何在java中动态创建列表而不重复?
关于类似的问题。 我有一个和被问到的人很相似的问题 在我的项目中,我有飞机、机场和乘客的PNR记录 乘客目的地机场是从数据库中导出的,但我必须将其添加到一个名为airplanes的目的地列表中 所以数据库将包含 A380,肯尼迪,人物 A380,肯尼迪机场,人员B A330,左后,个人 我的计划是从数据库中动态创建机场列表,并将具有相同目的地的乘客添加到其中 所以现在我有佩隆萨和肯尼迪的个人,他们将在同一个名单上。虽然在LHR列表中只有personC会在LHR列表中,但会有成百上千条这样的记录和成百上千个机场列表需要创建,所以我必须动态创建这样的列表 但问题是,我如何确定机场(JFK)列表是否已经存在,而不为该特定机场创建另一个列表?还是有其他方法来存储信息 伪代码:如何在java中动态创建列表而不重复?,java,arrays,list,Java,Arrays,List,关于类似的问题。 我有一个和被问到的人很相似的问题 在我的项目中,我有飞机、机场和乘客的PNR记录 乘客目的地机场是从数据库中导出的,但我必须将其添加到一个名为airplanes的目的地列表中 所以数据库将包含 A380,肯尼迪,人物 A380,肯尼迪机场,人员B A330,左后,个人 我的计划是从数据库中动态创建机场列表,并将具有相同目的地的乘客添加到其中 所以现在我有佩隆萨和肯尼迪的个人,他们将在同一个名单上。虽然在LHR列表中只有personC会在LHR列表中,但会有成百上千条这样的记录和
while (dbrecord =true){
if(passenger.destination == "JFK"){
List<passenger> JFK(dynamic)= new ArrayList<passenger>();
JFK(dynamic).add(passenger)
}
while(dbrecord=true){
如果(乘客目的地==“JFK”){
列出JFK(动态)=新建ArrayList();
JFK(动态)。添加(乘客)
}
您可以通过拥有地图来实现这一点
含义:每当处理一个目的地时,您都会询问地图是否包含该目的地。如果是,则它已经作为一个列表值存在;如果不是,则为该键添加一个新列表,如:
Map<String, List<Passenger>> listsByDestination = new HashMap<>;
String destination = ... wherever
if (listsByDestination.contains(destination)) {
... already known
} else {
listsByDestination.put(destination, new ArrayList<>());
}
Map listsByDestination=newhashmap;
字符串目的地=…无论何处
if(listsByDestination.contains(目标)){
…已经知道了
}否则{
listsByDestination.put(目标,新的ArrayList());
}
等等
旁白:我用大写的Passenger,因为类名称在Java中以大写开头。您可以通过使用映射来实现这一点
含义:每当处理一个目的地时,您都会询问地图是否包含该目的地。如果是,则它已经作为一个列表值存在;如果不是,则为该键添加一个新列表,如:
Map<String, List<Passenger>> listsByDestination = new HashMap<>;
String destination = ... wherever
if (listsByDestination.contains(destination)) {
... already known
} else {
listsByDestination.put(destination, new ArrayList<>());
}
Map listsByDestination=newhashmap;
字符串目的地=…无论何处
if(listsByDestination.contains(目标)){
…已经知道了
}否则{
listsByDestination.put(目标,新的ArrayList());
}
等等
旁白:我用大写字母乘客,因为,好的类名在Java中以大写字母开头。我不能100%确定我是否理解这个场景,但是避免重复的最好方法是使用一个集合结构,比如HashSet我不能100%确定我是否理解这个场景,但是避免重复的最好方法是使用一个集合结构,比如HashSet像这样的东西可能会对你有所帮助
Map<String, List<Passenger>> pasengerMaps = new HashMap();
if(pasengerMaps.contains("JFK")){
pasengerMaps.get("JFK").add(passenger)
}else{
pasengerMaps.put("JFK",new ArrayList<Passenger>());
}
Map pasengermap=newhashmap();
如果(pasengerMaps.contains(“JFK”)){
pasengerMaps.get(“JFK”).add(乘客)
}否则{
put(“JFK”,newArrayList());
}
类似的东西可能会对您有所帮助
Map<String, List<Passenger>> pasengerMaps = new HashMap();
if(pasengerMaps.contains("JFK")){
pasengerMaps.get("JFK").add(passenger)
}else{
pasengerMaps.put("JFK",new ArrayList<Passenger>());
}
Map pasengermap=newhashmap();
如果(pasengerMaps.contains(“JFK”)){
pasengerMaps.get(“JFK”).add(乘客)
}否则{
put(“JFK”,newArrayList());
}
我会使用谷歌的番石榴图书馆
ListMultimap<String, Passenger> multimap = ArrayListMultimap.create();
multimap.put("destination",passenger1);
multimap.put("destination",passenger2);
ListMultimap multimap=ArrayListMultimap.create();
多重地图放置(“目的地”,乘客1);
多重地图放置(“目的地”,乘客2);
您可以检索某些特定目的地的乘客列表,如下所示:
List<Passenger> passengerList = multimap.get("destination");
List passengerList=multimap.get(“目的地”);
我会使用谷歌的番石榴图书馆
ListMultimap<String, Passenger> multimap = ArrayListMultimap.create();
multimap.put("destination",passenger1);
multimap.put("destination",passenger2);
ListMultimap multimap=ArrayListMultimap.create();
多重地图放置(“目的地”,乘客1);
多重地图放置(“目的地”,乘客2);
您可以检索某些特定目的地的乘客列表,如下所示:
List<Passenger> passengerList = multimap.get("destination");
List passengerList=multimap.get(“目的地”);
我完全同意亲爱的杰金,但由于这项积分政策,我不允许发表评论只是回答:/Good我完全同意亲爱的杰金,但由于这项积分政策,我不允许发表评论只是回答:/Looking在你的代码中,我希望这是为了一些“教育任务”,而不是为了一个真正的产品。你的代码有错误(你确定它应该读为=true,而不是==true,更糟糕的是,你从来没有使用==;你总是使用equals来比较字符串);你违反了java编码风格的准则。老实说,如果这是真的你最好还是后退一步,花几个星期学习java基础知识;在你甚至应该考虑触摸一行生产代码之前,这是什么意思?<代码>(乘客,目的地=“JFK”)<代码> >可以被<代码>等式>(代码)>替换,看你的代码,我希望这是为了一些“教育任务”。;而不是真正的产品。您的代码有缺陷(您确定应该读为=true,而不是==true,更糟糕的是,您从来没有使用==;您总是使用equals来比较字符串);而且您违反了java编码风格准则。老实说,如果这是真的比你更好的后退,花了接下来几周学习java基础知识;在你甚至应该考虑触摸一行生产代码之前,这是什么意思?<代码>(乘客,目的地=“JFK”)<代码>,可以用<代码>等式()代替。
字符串目标可以类似于列表中的循环,以便动态创建每个机场的列表?这正是我的代码在将其放入循环时所做的。字符串目标可以类似于列表中的循环,以便动态创建每个机场的列表?这正是我的代码在把它做成一个循环。