2017-12-19 35 views
0

EventクラスとVenueクラスを作成する必要があります。Java:メソッドの引数としてキューを渡していますか?

Venueクラスでは、優先度キューを配置する必要があります。キューからイベントを削除して表示するメソッドを作成するだけでなく、いくつかの簡単な統計情報を表示する必要があります。すべてのイベントの人の平均など

私は最初の点に固執しています。このイベントを表示します。メソッド全体に渡すことは可能ですか? - 私はそれをやろうとしましたが、うまくいかないようです。 - (表示方法はEventクラス)。

public class Event { 

    private String name; 
    private int time; 
    private int numberOfParticipants; 

    public Event(String name, int time, int numberOfParticipants) { 
     this.name = name; 
     this.time = time; 
     this.numberOfParticipants = numberOfParticipants; 
    } 

    /**Getters and setters omitted**/ 

    @Override 
    public String toString() { 
     return "Wydarzenie{" + 
       "name='" + name + '\'' + 
       ", time=" + time + 
       ", numberOfParticipants=" + numberOfParticipants + 
       '}'; 
    } 

    public void display(PriorityQueue<Event> e){ 
     while (!e.isEmpty()){ 
      System.out.println(e.remove()); 
     } 
    } 
} 

会場クラス:ここ

public class Venue { 
    public static void main(String[] args) { 
     PriorityQueue<Event> pq = new PriorityQueue<>(Comparator.comparing(Event::getTime)); 
     pq.add(new Event("stand up", 90, 200)); 
     pq.add(new Event("rock concert", 120, 150)); 
     pq.add(new Event("theatre play", 60, 120)); 
     pq.add(new Event("street performance", 70, 80)); 
     pq.add(new Event("movie", 100, 55)); 
    } 
} 
+0

はい、メソッドの引数としてコレクションを渡すことができます。試してみるとどんな問題が起きていますか? – sprinter

+0

はい。メソッド内の任意のコレクションを渡すことができます。他にもいくつか...私はあなたがVenueクラスで待ち行列を持つべきだと思います。 Venueクラスにメソッドを追加して、イベントやその他のものを追加することができます。メインでは、display(pq)を呼び出すことができます。また、表示する各項目を削除するのが適切かどうかわかりません。 – clinomaniac

答えて

0

は、会場のクラスにいくつかの変更です。

class Venue { 
    PriorityQueue<Event> pq = new PriorityQueue<Event>(Comparator.comparing(Event::getTime)); 

    public static void main(String[] args) { 
     Venue v = new Venue(); 
     v.addEvents(); 
     v.display(v.pq); 
    } 

    private void addEvents() { 
     pq.add(new Event("stand up", 90, 200)); 
     pq.add(new Event("rock concert", 120, 150)); 
     pq.add(new Event("theatre play", 60, 120)); 
     pq.add(new Event("street performance", 70, 80)); 
     pq.add(new Event("movie", 100, 55)); 
    } 

    private void display(PriorityQueue<Event> e) { 
     while (!e.isEmpty()) { 
      System.out.println(e.remove()); 
     } 
    } 
} 

キューはクラスレベルにあり、各Venueは独自のキューを持つことができます。 mainメソッドは他のメソッドを呼び出すだけですが、理想的には別のクラスに配置する必要があります。ディスプレイはVenueインスタンスで呼び出され、キューから各アイテムを削除しながらそのメソッドで統計を行うことができます。

関連する問題