练习-java集合类之list的arraylist之删除指定学生
时间: 2023-04-29 11:00:07 浏览: 223
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();
}
}
```
相关问题
练习-Java集合类之List的ArrayList之删除指定学生
在Java中,如果要在`ArrayList<Student>`列表中删除指定的学生,你可以使用`remove(Object)`方法。这个方法会从列表中移除第一个匹配给定对象的元素。这里假设有一个名为`Student`的类,它有一个表示姓名的属性。
```java
import java.util.ArrayList;
class Student {
private String name;
// 构造函数和getter/setter省略
@Override
public boolean equals(Object obj) {
if (obj instanceof Student) {
return this.name.equals(((Student) obj).getName());
}
return false;
}
@Override
public int hashCode() {
return name.hashCode();
}
}
public class Main {
public static void main(String[] args) {
// 创建ArrayList并填充数据
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("张三"));
students.add(new Student("李四"));
students.add(new Student("王五"));
// 删除指定学生,这里假设我们要删除"王五"
String targetName = "王五";
for (int i = 0; i < students.size(); i++) {
if (students.get(i).equals(new Student(targetName))) {
students.remove(i); // 使用索引i删除对应位置的学生
break; // 找到目标后立即停止搜索
}
}
// 输出剩余的学生
for (Student student : students) {
System.out.println(student.getName());
}
}
}
```
在这个例子中,我们首先创建了一个`ArrayList<Student>`,然后通过遍历查找目标学生的名称,并调用`remove()`方法将其从列表中移除。需要注意的是,由于列表可能会被改变大小,所以在删除元素之后需要更新循环的条件,防止访问到已经被移除的位置。
Java集合练习题——使用List存储10个学生信息。(学生信息:姓名,年龄,成绩。统计所有姓“张”的同学的平均成绩
在Java中,你可以使用ArrayList来创建一个List,用于存储每个学生的姓名、年龄和成绩。首先,你需要定义一个Student类,包含这三个属性:
```java
public class Student {
private String name;
private int age;
private double score;
// 构造函数、getter和setter方法...
}
```
然后,你可以这样做来存储10个学生的信息,并计算姓“张”的同学的平均成绩:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Student student;
if (i == 0 || i == 5) { // 假设张三和张五姓张
student = new Student("张" + (i+1), 20 + i, (double)i * 10); // 示例数据,实际可根据需求设置
} else {
student = new Student("其他姓氏", 20 + i, (double)i * 10);
}
students.add(student);
}
double sumScoreForZhang = 0;
int countForZhang = 0;
for (Student s : students) {
if (s.getName().startsWith("张")) {
sumScoreForZhang += s.getScore();
countForZhang++;
}
}
if (countForZhang > 0) {
double averageScoreForZhang = sumScoreForZhang / countForZhang;
System.out.println("姓张的同学平均成绩: " + averageScoreForZhang);
} else {
System.out.println("没有找到姓张的同学");
}
}
}
```
阅读全文