java用迭代器删除学生
时间: 2024-05-12 09:14:19 浏览: 11
假设有一个 List<Student> 存储了学生信息,可以通过以下代码使用迭代器删除学生:
```
List<Student> students = new ArrayList<>(); // 假设已经存储了学生信息
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
if (student.getName().equals("张三")) { // 假设要删除名字为张三的学生
iterator.remove();
}
}
```
在上述代码中,首先通过 `students.iterator()` 获取到迭代器对象 `iterator`。然后使用 `while` 循环遍历 List 中的每个元素,如果该元素的名字与要删除的名字相同,则使用 `iterator.remove()` 方法将该元素从 List 中删除。需要注意的是,在使用迭代器删除元素时,不能直接使用 List 的 `remove` 方法,否则会抛出 `ConcurrentModificationException` 异常。
相关问题
使用HashSet集合存储Student类对象:使用迭代器及Lambda表达式对其遍历,根据指定学号删除学生对象Java代码实现
以下是Java代码实现:
```java
import java.util.HashSet;
import java.util.Iterator;
public class Student {
private String id;
private String name;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public static void main(String[] args) {
HashSet<Student> students = new HashSet<>();
students.add(new Student("001", "Tom"));
students.add(new Student("002", "Jerry"));
students.add(new Student("003", "Lucy"));
students.add(new Student("004", "Amy"));
// 使用迭代器遍历
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
System.out.println(student.getId() + " " + student.getName());
}
// 使用Lambda表达式遍历
students.forEach(student -> System.out.println(student.getId() + " " + student.getName()));
// 根据指定学号删除学生对象
String idToRemove = "002";
students.removeIf(student -> student.getId().equals(idToRemove));
}
}
```
其中,使用迭代器遍历的代码为:
```java
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
System.out.println(student.getId() + " " + student.getName());
}
```
使用Lambda表达式遍历的代码为:
```java
students.forEach(student -> System.out.println(student.getId() + " " + student.getName()));
```
根据指定学号删除学生对象的代码为:
```java
String idToRemove = "002";
students.removeIf(student -> student.getId().equals(idToRemove));
```
练习-java集合类之list的arraylist之删除指定学生
ArrayList是Java中的一种动态数组,可以用于存储多个元素。如果要删除ArrayList中的指定学生,可以使用remove()方法。该方法接受一个对象作为参数,并在列表中删除第一个匹配项。
例如,如果要从ArrayList中删除名为"Tom"的学生,可以使用以下代码:
```java
ArrayList<Student> students = new ArrayList<Student>();
// Add some students to the list
students.remove(new Student("Tom"));
```
请注意,上面的代码假设Student类具有重写equals()方法,并且能够根据名称进行比较。
如果要删除所有学生,可以使用clear()方法:
```java
students.clear();
```
也可以使用迭代器遍历列表并删除,如下
```java
Iterator<Student> it = students.iterator();
while(it.hasNext()){
Student student = it.next();
if(student.getName().equals("Tom")){
it.remove();
}
}
```