首页 > 解决方案 > 有没有办法将 ArrayList 的特定元素复制到另一个空/不同的 ArrayList 中?

问题描述

-EDITED-我正在学习Java考试,在从文件中读取信息后,我必须创建N个学生对象。并从键盘创建活动列表。对于每个学生,我必须检查所有活动,如果我找到具有相同学生姓氏的活动,我必须复制学生对象。

This are the class that I have created.
public class Student{
**String Surname;**
int Age;
ArrayList<Activity> list;
}

 public class Activity{
 **String Surname;**
 String ActName;
 int hour;
 }

假设从文件中读取了 2 个学生。

学生 1罗西,21 岁
学生 2 福尔摩斯,25

并假设我已经进入了 3 个活动

罗西数学 10 小时
福尔摩斯英语 20小时
福尔摩斯故事 12 小时

复制相应活动后我的最终输出:

Student1 Rossi,21 岁,{数学 10 小时}
Student2 Holmens,25 岁​​,{英语 20 小时,故事 12 小时}

--- 编辑 --- 我找到了绕过问题的方法,我读取文件检查姓氏是否与我的对象相同,如果为 true,我将对象添加到列表中,如果为 false,则继续读取文件。没有理由保存在列表中并从中提取。无论如何感谢您的回答

标签: java

解决方案


有没有办法将 ArrayList 的特定元素复制到另一个空/不同的 ArrayList 中?

  1. 您可以通过迭代列表并测试每个元素来找到列表的元素;例如

    for (ElementType element: list) {
        if (/* some test on 'element' */) {
            ...
        }
    }
    
  2. 要测试两个字符串值是否相等,请使用equals方法;例如

    if (str1.equals(str2)) {
        ...
    }
    
  3. 要将元素添加到列表中,请使用add方法;例如

    list.add(element);
    

这不是复制对象,但如果您阅读问题,可能不会要求您将对象复制到列表中。


推荐阅读