J'ai un tableau de Passagers comme suit :
Passenger[] passengers = new Passenger[5];
Voici la définition du terme "passager" :
public class Passenger{
int id;
int fromId;
int toId;
}
Je veux trouver les passagers dont les propriétés "de" et "à" correspondent ; par exemple, si John a fromID = 3, et Jerry a toID = 3, je peux les rassembler et les ajouter à une liste de passagers. Liste de "pairedPassengers". J'ai déjà une solution O(n^2) comme suit, mais quelle est une méthode plus efficace ?
public class PairedPassengers{
int id1;
int id2;
}
public class MainClass{
public static void main(String[] args){
List<PairedPassengers> pairedPassengers = new ArrayList<PairedPassengers>();
for (int i=0; i<passengers.length(); i++){ //length of the original array with all data
for (int j=i; j<passengers.length(); j++){
if (passengers[i].fromId == passengers[j].toId && passengers[i].toId == passengers[j].fromId){
PairedPassengers pPassengers = new PairedPassengers(); //creating a new object to put pairing passengers into
pPassengers.id1 = passengers[i].id;
pPassengers.id2 = passengers[j].id;
pairedPassengers.add(pPassengers);
}
}
}
}
}