2016-02-10 117 views
0

對於學校我必須根據荷蘭投票系統進行投票程序,其中有派對的候選人。對於這個課程,我已經做了一個「候選人」課程,該課程有一個獲得者和二傳手的名字候選人。然後有一個類「派對」,其中包含:Java二維ArrayList ArrayList

ArrayList<Candidate>CandidateList 

以及按名稱添加候選項的方法。接下來,我做了一個類 「PartyList」,其中包含:

ArrayList<Party>Parties 

而且這種方法:

public void addParty(Party party){ 
    Parties.add(new Party()); 

我認爲這將是更好的做這樣的:

ArrayList<ArrayList<Party>>Parties 

但我的老師說這足以構成一維ArrayList。現在來到我迷失的部分:

我有另一個類「投票」,其中最終投票發生,但爲此我必須製作一個派對和候選人的二維數組,看起來像這樣:

1 1 
1 2 
1 3 
2 1 
2 2 
3 1 
etc. 

其中第一列代表黨,第二列代表候選人。我知道第一列可能通過使用Parties.size(),但第二列不可能以這種方式實現,因爲CandidateList有多個Arraylist。我怎樣才能做到這一點?

+0

你'Party'類僅包含一個ArrayList的'',這樣你就可以得到所有的'候選人,如果你有'黨'。你可以通過你的'ArrayList '來獲得所有參與方...... –

+0

你究竟想要做什麼? *你的意思是多於一個CandidateList的Arraylists *?每個Party有多個CandidateList嗎?你已經展示的二維數組是什麼?這是數據輸入到您的程序?或者它只是印製各方和候選人每方都有? –

+0

每一方都有一份候選人名單,所以像弗洛裏安提到的那樣,我想我可以通過參加各方名單來獲得參加聚會的所有候選人。問題是,我不知道該怎麼做。我應該使用for-each循環來做到這一點嗎?我最後展示的二維數組確實只是印刷各方及其候選人。但是,我必須制定一種方法,隨機地給予來自不同方的候選人(共50個)的候選人,這就是陣列將要使用的位置。我希望這可以理解.. –

回答

0
class Poll { 
private Integer label; 
private Integer value; 

// Constructor or setter 
public void Poll(Integer label, Integer value) { 
    if (label == null || value == null) { 
     return; 
    } 
    this.label = label; 
    this.value = value; 
} 

// getters 

public Integer getLabel() { 
    return this.label; 
} 

public Integer getValue() { 
    return this.value; 
} 

}

這樣使用它來存儲2項,而不是多維的東西

private ArrayList<Poll> items = new ArrayList<Poll>(); 
items.add(new Stuff(label, value)); 
for (Poll item: items) { 
doSomething(item.getLabel()); // returns Integer  
doSomething(item.getValue()); // returns Integer 
} 
+0

謝謝,但是練習中特別提到了讓一個候選人在一個partlistist上擁有一個職位,然後將該黨添加到某一年的選舉名單中。教師已經批准了我的主要類是這樣的: Party cda = new Party(); cda.voegKandidaatToe(「Henry」); ElectoralList list2015 = new ElectoralList(); list2015.addParty(cda); –