当前位置: 首页 > 知识库问答 >
问题:

如何使用字符串在ArrayList中搜索元素?

晏永康
2023-03-14

我正在写一个程序来跟踪学校的班级和学生。我有学校、教室和学生用品。学校包含教室对象的ArrayList,每个教室包含学生对象的ArrayList。

我试图在学校类中编写一个方法,使用字符串名称和字符串classroomName作为参数来删除学生。

这就是我到目前为止所做的:

public void remove( String studentName, String classroomName) {
    for(Classroom c : classes) {
        if(c.className.equals(classroomName)){
         //search for student and remove
          for(Student s : students){
             if(s.studentName.equals(studentName)){
                s.remove(studentName);
        }
      }
    }
}

我认为这不起作用,因为学生对象的ArrayList是在课堂上声明的。

是否有一种方法可以通过对象ArrayList搜索使用非对象参数的元素?

共有2个答案

阎坚成
2023-03-14

正如其他人所指出的,您只能使用迭代器删除元素。你想要这样的东西:

    for(Iterator<Student> it = c.students.iterator(); it.hasNext();)
    {
        Student s = it.next();
        if(s.studentName.equals(studentName))
            it.remove();
    }

你说每个教室都包含一个学生的列表,所以我假设c.Students是你想要迭代的-你发布的代码使用一个独立的列表学生。也许是打字错误?

龙弘盛
2023-03-14

就像他们告诉你的那样,你不能在迭代时从列表中删除元素,除非你使用迭代器或者你用索引手动控制迭代。

否则,如果您使用的是Java 8,则可以使用:

students.removeIf(s -> s.studentName.equals(studentName));
 类似资料:
  • 问题内容: 我想要一个自动完成功能。我对数据类型的属性有简短的描述性字符串。我在redis中有一个ID列表,其中包含按创建日期排序的数据类型,并且使用ID来设置和获取该数据类型的属性,如redis类型文档中所述。我不使用哈希表。在此设置下,获取与输入到自动完成输入框中的内容相匹配的字符串集的最佳方法是什么?遍历所有id并检查我要搜索的属性- 对于每次击键,这似乎是错误的方法。 编辑: 除了下面的答

  • 问题内容: 在SQLite中搜索子字符串的最有效方法是什么? 我在看LIKE运算子。 我有正确的主意吗?这对您来说效果很好吗? http://www.sqlite.org/lang_expr.html 谢谢你。 问题答案: 是的,请使用“赞”。 将返回名称列中任何位置带有“ omm”的行。

  • 问题内容: 我正在使用BeautifulSoup在特定页面上寻找用户输入的字符串。例如,我想查看字符串“ Python”是否位于页面上:http : //python.org 当我使用时: find_string返回 但是当我使用: find_string返回预期 这两个语句之间有什么区别,使得当要搜索的单词实例不止一个时,第二条语句可以工作 问题答案: 以下行正在寻找 确切的 Navigable

  • 问题内容: 我有一个带有自定义对象的ArrayList。我想在此ArrayList中搜索字符串。 对象的类如下所示: 我知道如何在ArrayList中搜索字符串,但是如何使用自定义对象在ArrayList中搜索字符串: 所以我想有一个函数在我的ArrayList中搜索,例如用五个对象搜索所有“名称”字符串。 问题答案: 最简单的方法是在一个地方验证自定义对象的属性是否具有所需的字符串 我认为这对您

  • 我希望typeahead.js在如何匹配项方面表现得像jqueryui autocomplete。使用jqueryui autocomplete可以在文本项中进行搜索。在typeahead中,它仅从字符串的开头开始。 自动完成示例:http://goo.gl/O43afF 提前键入示例:http://twitter.github.io/typeahead.js/examples/ 使用autoco

  • 问题内容: 我想在文档中搜索“社交网络营销”。全部一起。但是我继续得到结果,单词分开。我有以下DSL查询: 我没有包含此短语和标题的文档,但是我也得到了包含短语单词的搜索结果(文档)以进行拆分。我要严格搜索。如果没有任何文档使用此短语,则不要检索任何文档或仅检索具有该标题的文档。为什么 运算符又 不起作用? 问题答案: 您可以使用类型词组尝试以下方法吗?看到这里说, 查询首先分析查询字符串以生成术