public static void main(String[] args) {
// TODO Auto-generated method stub
Population population = new Population(3, 10, 30);
population.initPopulation();
String[]gene;
Individual [] pop;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl ="jdbc:sqlserver://localhost:1433;databaseName=commentData";
Connection connection = DriverManager.getConnection(connectionUrl, "sa", "zangai");
String sql="select comment from commentData ";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery();
pop=new Individual[10];
for(int i=0;i<population.getGroupCount();i++)
{
gene=new String[30];
for (int j = 0; j < population.getGeneLength(); j++) {
resultSet.next();
gene[j] = resultSet.getString("comment");
}
for(String a:gene)
System.out.println(a);
pop[i].setGene(gene);
}
population.setPopulation(pop);
}
}
public class Individual {
private String []gene ;//
private double fitness = 0;// 适应度
private double selectedProbability=0.0;//选择概率
private double cumulativeProbability=0.0;//变异概率
private int selectedCount=0;// 选择计数
private StringBuilder stringBuilder;//随机分配
public void initGene(int geneLength,int k){
stringBuilder=new StringBuilder();
gene=new String[geneLength];
for (int i = 0; i< geneLength; i++) {
Random random = new Random();
stringBuilder.append(Math.abs(random.nextInt() % k) + 1);
}
}
}
public class Population {
private Individual[] population;
private int groupCount = 0;//种群
private int k = 0;//上下文重组数目
private int geneLength = 0;//编码长度
//
public Population(int k, int groupCount, int geneLength) {
this.groupCount = groupCount;
this.k = k;
this.geneLength = geneLength;
population = new Individual[groupCount];
for(int i=0;i<groupCount;i++)
population[i]=new Individual();
}
}
上面是三个主要类和其中属性的定义,但是在main中循环pop[i]处无法执行,请问这个怎么解决啊