QingCheng11 2015-05-24 07:22 采纳率: 50%
浏览 3255

java for循环无法执行

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]处无法执行,请问这个怎么解决啊

  • 写回答

5条回答

  • danielinbiti 2015-05-24 07:43
    关注
     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]       = new Individual();//需要new实例,否则为null的,下面一句就报错了。
                    pop[i].setGene(gene);
    
    
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料