2017-07-15 99 views
0

我是新來的java,我試圖編寫我的第一個「更大」的程序,有幾個類。我在類「CompetitionProgram」中創建了一個ArrayList,並聲明它是私有的。將對象從一個類添加到另一個類的ArrayList中

public class CompetitionProgram { 

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

在方法 「的addEvent」,我創建類事件的對象:

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; 
} 

我想將Event對象添加到頂部聲明的ArrayList,但是我不能,因爲ArrayList是類「ListOfEvents」的列表。所以,我的問題是將Event對象添加到類ListOfEvents的ArrayList中。

我需要這兩個類(事件& ListOfEvents)在我的程序中,這是需求之一。 事件 - 僅表示事件本身,如事件名稱和嘗試次數(其體育事件)。而ListOfEvents - 代表名單本身包含用於添加事件,刪除事件,並檢查該事件是否已經在列表等

任何人誰有任何想法如何解決這個問題的方法呢?

+0

Post ListOfEvents也是如此。名稱在這裏有誤導性。 ListOfEvents應該可能包含一個列表,而不是添加到列表中的類。 – dev8080

+0

'ListOfEvents list = new ListOfEvents(); list.add(EV); eventList.add(列表);' – 4castle

回答

0

您的意思是創建一個「事件列表」列表。 如果是這樣,下面的代碼將正常工作。

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

我不太清楚,如果我錯過了一些東西,但我認爲,有一個簡單的解決方案:

- >剛剛從「ListOfEvents」改變通用類型的ArrayList到「 Event「:

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

這將創建一個類型爲」Event「的單個實例的可縮放列表。

因此,作爲一個說明例如,下面的代碼片段將創建一個字符串的ArrayList:

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

還是你想創建「事件」的名單列表?如你所說,這是關於體育賽事。因此,也許你想創建帶有事件的遊戲,並將這些遊戲添加到列表中。在這種情況下,您以這種方式工作:

private ArrayList<ArrayList<Event>> eventList ... 
相關問題