java List被当做参数传入函数后里面内容不同??

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

这块是调用的部分,memberList中存的是我自己写的Member类对象,里面有个jama包的矩阵成员m。可以看到一开始测试时矩阵m都是没问题的。

/////////////////test//////////////////
        for(int i=0;i<memberList.size();i++)
            if(!testPathfinder(memberList.get(i).m)){////////////////没测出问题
                System.out.println("CIWBMOPFA 错误的memberList2");
                System.exit(0);
            }
        
        /*产生非支配解成员集合,存入箱中。若只有一个成员,则它是支配解*/
        ArrayList<Member> box=new ArrayList<Member>(findNonDominatedMember(memberList));//得到的非支配解成员集合转化为数组存储    ////////////////////////findNonDominatedMember有问题

这块是函数部分,这里就报错了,说明传入后memberList中的对象们发生了变化,没搞懂是为什么。

private Set<Member> findNonDominatedMember(List<Member> memberList) {
        Set<Member> nonDominatedSet=new HashSet<Member>();//非支配解成员集合
        
        for(int i=0;i<memberList.size();i++)
            if(!testPathfinder(memberList.get(i).m)){////////////////有问题
                System.out.println("findNonDominatedMember 错误的memberList1");
                System.exit(0);
            }
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

兄弟你陷入死胡同了
你这个 集合里面坑定是存在findNonDominatedMember 错误的memberList1的数据的
不过你两个循环里都是一个集合,在第一个循环第一次执行后,下面那个循环会遍历所有的集合数据;
只要你不是第一个存在问题,都只会在第二个循环里面报错的