铬金属 2022-04-20 21:12 采纳率: 0%
浏览 71

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);
            }
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 湛昭 2022-04-21 10:27
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 4月20日