2017-07-11 8 views
-2

私は乗客の詳細を含む乗客のクラスを持っています。これは、乗車券、旅行ルート、選択された食事、選択された食品です。複数のフライトでは、チケット番号は同じままです。 その場合は、旅客情報の1行を表示し、次に食事&のフードセレクションと2番目のフライトの食事&のフードセレクションで次の行を表示する必要があります。同じ情報の複数の行を表示する方法のロジックが必要

私は許さ重複しない場合、私はリストが含まれているかどうかを確認することができ、次の形式

Tkt Id | Travel route | Meal selected 1 | Food selected 1 
Tkt Id | Travel route | Meal selected 2 | Food selected 2 

に、私は次の形式

TKT ID | Travel route | Meal selected 1 | Food selected 1 

         | Meal selected 2 | Food selected 2 

に表示する必要がデータベースから結果を取得しますtkt id。もしあれば、私は選択された食事2を追加します。いいえ、私は行全体を追加します。

しかし、この場合、自分の要件に従って値を保存して表示する方法がわかりません。

任意の提案は

+0

私はこの質問をd​​ownvoteするためにここでポイントを理解していません。私はシナリオを共有していると私の質問は明らかに私は論理と実際のコードではないことを指摘しています。その理由を説明する – jaggs

答えて

2

は、例えばマップを使用して歓迎されています

Map<String, List<Passenger>> routes = new HashMap<>(); 
for(Passenger passenger : passengers) { 
    if(routes.containsKey(passenger.getId()) { 
     List<Passenger> route = routes.get(passenger.getId()); 
     route.add(passenger); 
    } else { 
     List<Passenger> newRoute = new ArrayList<>(); 
     newRoute.add(passenger); 
     routes.put(passenger.getId(), newRoute); 
    } 
} 

やマップをループすることにより、それらを印刷は、私は自分自身をそれのいくつかを修正する必要がある場合がありますので、コードを実行しようとしたやりなさい

for(List<Passenger> route : routes.values()) { 
    System.out.print(route.get(0).getId() + " | " + route.get(0).getRoute()); 
    for(Passenger passenger : route) { 
     System.out.println(passenger.getMeal() + " | " + passenger.getFood()); 
    } 
} 

注値。

関連する問題