2013-11-20 151 views
0

嘗試創建一個最多4人的組,但具有相同ID的人不能在同一組中,例如「Tim ID1,喬什ID2,本ID3,喬治ID4「這將是一個很好,但」詹姆斯ID2「不能加入該組,因爲喬什已經在它。如果(arraylist包含「1」&&字符串包含「1」)打印錯誤

String person = request.getParameter("name") +" ID"+ request.getParameter("id"); 
people = new ArrayList(); 

if (people.size() >= 4){ 
    people.clear(); //Just to stop more than 4 persons in the group 
} 

for (int i = 0; i < people.size(); i++) { 
    if (people.contains("1") && person.contains("1")){ 
     out.println("Error"); 
    } else if (people.contains("2") && person.contains("2")){ 
     out.println("Error"); 
    } else if (people.contains("3") && person.contains("3")){ 
     out.println("Error"); 
    } else if (people.contains("4") && person.contains("4")){ 
     out.println("Error"); 
    } 
} 

//If person does not have an id that is in the arraylist 
people.add(person); 

我不明白爲什麼這種方法不起作用,任何幫助將不勝感激。

+1

你的意思是'persons'或'person'? – MariuszS

+0

從我看到您的人員列表始終是大小0.您應該發佈整個代碼。順便說一句,你真的使用原始列表嗎? new ArrayList();人員列表包含什麼? – Ioan

+0

對不起,我的意思是人,一個簡單的版本將是如果tims id = x和x沒有在數組列表中然後添加tim到數組列表。 –

回答

2
for (int i = 0; i < people.size(); i++) 
在此

for循環的條件i<people.size()將永遠是假的,因爲你還沒有插入arrayList people裏的任何東西。

改變你的for循環for (int i = 0; i < 10; i++)或某事的真實情況

+0

更改爲i <= 4,因爲該組只能有4個成員,但是這並不能解決主要問題,如果id在數組中,請不要將人員添加到arraylist –

+0

@Louis Dickinson,因爲您不希望該人員然後你必須創建新的數組列表(比如List people1 = new people1();)以添加該人員,並且下次添加新人時,則必須同時檢查數組列表(people和people1)這個過程將繼續下去,直到你繼續添加新的人。 – Ashish

+0

@Louis Dickinson發佈你已經實現的完整代碼 – Ashish