【问题标题】:If (arraylist contains "1" && string contains "1") print errorif (arraylist contains "1" && string contains "1") 打印错误
【发布时间】:2013-12-04 10:39:50
【问题描述】:

尝试创建最多 4 人的组,但是,具有相同 ID 的人不能在同一组中,例如“Tim ID1、Josh ID2、Ben ID3、George ID4”,这很好,但是“ James ID2" 不能加入那个组,因为 Josh 已经在里面了。

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

我不明白为什么这种方法不起作用,任何帮助将不胜感激。

【问题讨论】:

  • 您的意思是personsperson
  • 据我所知,您的人员列表的大小始终为 0。您应该发布整个代码。顺便说一句,你真的使用原始列表吗?新的 ArrayList();人员列表包含什么内容?
  • 对不起,我的意思是人,一个简单的版本是如果 tims id = x 和 x 不在数组列表中,然后将 tim 添加到 arraylist。

标签: java if-statement arraylist contains


【解决方案1】:
for (int i = 0; i < people.size(); i++) 

在这个 for 循环中,您的条件 i&lt;people.size() 将始终为 false,因为您没有在 arrayList people 内插入任何内容。

将您的 for 循环更改为 for (int i = 0; i &lt; 10; i++) 或其他内容为 true 条件

【讨论】:

  • 更改为 i
  • @Louis Dickinson 因为您不希望同一组中具有相同 id 的人,所以您必须创建新的数组列表(例如 List people1 = new people1();)以添加该人并下次添加当您添加一个新人时,您必须同时检查 arraylist(people 和 people1),这个过程将一直持续到您继续添加新人为止。
  • @Louis Dickinson 发布您已实现的完整代码
  • 这不是他的代码中唯一的错误。您不能直接检查子字符串的列表条目。您需要获取对象并单独检查。正如我在回答中提到的那样。
猜你喜欢
  • 2022-01-11
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多