2013-11-20 217 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