Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中动态创建列表而不重复?_Java_Arrays_List - Fatal编程技术网

如何在java中动态创建列表而不重复?

如何在java中动态创建列表而不重复?,java,arrays,list,Java,Arrays,List,关于类似的问题。 我有一个和被问到的人很相似的问题 在我的项目中,我有飞机、机场和乘客的PNR记录 乘客目的地机场是从数据库中导出的,但我必须将其添加到一个名为airplanes的目的地列表中 所以数据库将包含 A380,肯尼迪,人物 A380,肯尼迪机场,人员B A330,左后,个人 我的计划是从数据库中动态创建机场列表,并将具有相同目的地的乘客添加到其中 所以现在我有佩隆萨和肯尼迪的个人,他们将在同一个名单上。虽然在LHR列表中只有personC会在LHR列表中,但会有成百上千条这样的记录和

关于类似的问题。 我有一个和被问到的人很相似的问题

在我的项目中,我有飞机、机场和乘客的PNR记录

乘客目的地机场是从数据库中导出的,但我必须将其添加到一个名为airplanes的目的地列表中

所以数据库将包含

A380,肯尼迪,人物

A380,肯尼迪机场,人员B

A330,左后,个人

我的计划是从数据库中动态创建机场列表,并将具有相同目的地的乘客添加到其中

所以现在我有佩隆萨和肯尼迪的个人,他们将在同一个名单上。虽然在LHR列表中只有personC会在LHR列表中,但会有成百上千条这样的记录和成百上千个机场列表需要创建,所以我必须动态创建这样的列表

但问题是,我如何确定机场(JFK)列表是否已经存在,而不为该特定机场创建另一个列表?还是有其他方法来存储信息

伪代码:

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”)<代码>,可以用<代码>等式()代替。
字符串目标可以类似于列表中的循环,以便动态创建每个机场的列表?这正是我的代码在将其放入循环时所做的。字符串目标可以类似于列表中的循环,以便动态创建每个机场的列表?这正是我的代码在把它做成一个循环。