这块是调用的部分,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的数据的
不过你两个循环里都是一个集合,在第一个循环第一次执行后,下面那个循环会遍历所有的集合数据;
只要你不是第一个存在问题,都只会在第二个循环里面报错的