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

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日

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)