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

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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题