2017-07-15 7 views
0

私はjavaを使い慣れていないので、いくつかのクラスを使って最初の「大きな」プログラムを作成しようとしています。クラス "CompetitionProgram"でArrayListを作成しましたが、それはprivateとして宣言されています。メソッド "addEvent" であるクラスから別のクラスのArrayListにオブジェクトを追加する

private ArrayList<ListOfEvents> eventList = new ArrayList<ListOfEvents>();

public class CompetitionProgram { 
が、私はクラスのイベントのオブジェクトを作成しています:

private void addEvent() { 

    System.out.print("Event name: "); 
    String eventName = checkInput(); 

    System.out.print("Attempts allowed: "); 
    int noOfAttempts = readInt(); 

    Event ev = new Event(eventName, noOfAttempts); 
    eventList.add(ev); 

イベント・クラス:

public class Event { 

private String eventName; 
private int noOfAttempts; 

public Event(String eventName, int noOfAttepmts) { 
    this.eventName = eventName; 
    this.noOfAttempts = noOfAttepmts; 
} 

public String getEventName() { 
    return eventName; 
} 

public int getNoOfAttempts() { 
    return noOfAttempts; 
} 

ListOfEvents-クラス(それは完了していない、私は "イベント"などを返すことはできません知っている):

public class ListOfEvents { 
public ListOfEvents() { 

} 

public Event addEvent(eventName, noOfAttempts) { 
    // code -add event to the list 
    // code 
    return event; 
} 

public Event findEvent(eventName) { 
    // code -check if event already is in the list 
    // code 
    return event; 
} 

public boolean isEvent(eventName) { 
    //code -check if input is empty 
    //code 
    return true or false; 
} 

のArrayListクラス「ListOfEvents」のリストであるので、私は先頭で宣言ArrayListにEventオブジェクトを追加したいが、私はできません。だから、私の問題は、ListOfEventsクラスのArrayListにEventオブジェクトを追加することです。

私のプログラムでは、これらのクラス(イベント& ListOfEvents)の両方が必要ですが、これは要件の1つです。 イベント - イベント名や試行回数(スポーツイベント)などのイベント自体を表しています。そしてListOfEvents - リスト自体を表し、イベントの追加、イベントの削除、イベントが既にリストに入っているかどうかのチェックなどのメソッドを含んでいます。

これを解決する方法を知っている人はいますか?

+0

投稿リストイベントも同様です。名前はここで誤解を招く。 ListOfEventsにはおそらくリストが含まれていて、リストに追加されたクラスではありません。 – dev8080

+0

'ListOfEvents list =新しいListOfEvents(); list.add(ev); eventList.add(リスト); ' – 4castle

答えて

0

「イベントのリスト」のリストを作成することを意味します。 もしそうなら、次のコードは正常に動作します。 >ただに「ListOfEvents」からのArrayListのジェネリック型を変更する」 -

ListOfEvents list = new ListOfEvents(); 
Event ev = new Event(eventName, noOfAttempts); 
list.add(ev); 
eventList.add(list); 
0

私が何かを逃した場合、私は、非常にわからないんだけど、私が思うには、簡単な解決策がありますイベント ":

private ArrayList<Event> eventList = new ArrayList<Event>(); 

これは、"イベント "タイプの単一インスタンスのスケーラブルなリストを作成します。

ので、説明する例として、次のスニペットは、単一の文字列のArrayListを作成します。

private ArrayList<String> eventList = new ArrayList<String>(); 

するか、「イベント」のリストのリストを作成したいですか?あなたが言ったように、それはスポーツイベントに関するものです。したがって、ゲームを作成し、イベントで構築し、これらのゲームをリストに追加したいと思うかもしれません。この場合、次のように作業します。

private ArrayList<ArrayList<Event>> eventList ... 
関連する問題