标题:求助啊--关于arraylist的
只看楼主
lfzlx54
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-19
 问题点数:0 回复次数:0 
求助啊--关于arraylist的
大家看啊,下面这段代码是没问题的
import  java.util.ArrayList;
import  java.util.Random;

public  class  GA  {
public  int  chromosomeLong;//染色体长度  
public  int  initChromosomeNum;//初始染色体数目

public  ArrayList<int[]>  population  =  new  ArrayList<int[]>();//保存当代染色体
public  GA()  {

}



public  GA(int  initChromosomeNum,  int  chromosomeLong,
double  crossOverProbability,  double  mutationProbability)  {
this.chromosomeLong  =  chromosomeLong;
this.crossOverProbability  =  crossOverProbability;
this.mutationProbability  =  mutationProbability;
this.initChromosomeNum  =  initChromosomeNum;
}

/**
 *  随机产生第一代
 *  
 *  初始群体个数  initChromosomeNum
 *  
 */
public  void  generateInitAllPopulation()  {
if(population.size()!=0){
population.clear();
}
for  (int  i  =  0;  i  <  initChromosomeNum;  i++)  {
int[]  chromosome  =  generateChromosome();
population.add(i,  chromosome);
}
}

/**
 *  随机产生单个染色体  染色体长度populationLong
 *  
 */
public  int[]  generateChromosome()  {
int[]  chromosome  =  new  int[chromosomeLong];
for  (int  i  =  0;  i  <  chromosomeLong;  i++)  {
double  random  =  Math.random();
if  (random  <=  0.5)  {
chromosome  =  1;
}  else  {
chromosome[i]  =  0;
}
}
return  chromosome;
}





然而当我想把population  改换成二维数组时却出了问题,看下面的代码



import  java.util.ArrayList;
import  java.util.Random;

public  class  GA  {
public  int  chromosomeLong;//染色体长度  
public  int  num;//卖家个数
public  int  initChromosomeNum;//初始染色体数目
[i]public  ArrayList<int[][]>  population  =  new  ArrayList<int[][]>();//保存当代染色体      
public  GA()  {

}

public  GA(int  num,int  initChromosomeNum,  int  chromosomeLong,
double  crossOverProbability,  double  mutationProbability)  {
this.chromosomeLong  =  chromosomeLong;
this.crossOverProbability  =  crossOverProbability;
this.mutationProbability  =  mutationProbability;
this.num=num;
this.initChromosomeNum  =  initChromosomeNum;
}


/**
 *  随机产生第一代
 *  
 *  初始群体个数  initChromosomeNum
 *  
 */
public  void  generateInitAllPopulation()  {
if(population.size()!=0){
population.clear();
}

for(int  j=1;j<=num;j++){
     for  (int  i  =  1;  i  <=  initChromosomeNum;  i++)  {
 int[]  chromosome  =  generateChromosome();
 
 population[j].add(i,  chromosome); //////这里出了错误???????????????
     }
}
}

/**
 *  随机产生单个染色体  染色体长度populationLong
 *  
 */
public  int[]  generateChromosome()  {
int[]  chromosome  =  new  int[chromosomeLong];
for  (int  i  =  0;  i  <  chromosomeLong;  i++)  {
double  random  =  Math.random();
if  (random  <=  0.5)  {
chromosome[i]  =  1;
}  else  {
chromosome[i]  =  0;
}
}
return  chromosome;
}

麻烦大家帮我改正啊,谢谢了!
搜索更多相关主题的帖子: arraylist 
2008-09-20 09:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-234162-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.836384 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved