如何解决java.lang.indexoutofboundsexception的问题:索引:0,大小:0



我正在尝试设置一个新位置,该位置是该算法的全局解决方案。我从称为(HH(的文本文件中读取新位置,但是当我尝试通过代码行P.SetneighborhoodPosition(F,Val1(;,我有以下错误时:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:635)
    at java.util.ArrayList.set(ArrayList.java:426)
    at PSOFS.Particle.setNeighborhoodPosition(Particle.java:177)
    at PSOFS.Main.main(Main.java:213)

这是我使用的代码

     Particle p = new Particle();
          if (s.getProblem().isBetter(newFitness, oldFitness)) {
              p.setNeighborhoodFitness(newFitness);
 String sc1 = new Scanner( new File("hh.txt") ).useDelimiter("\A").next();
             sc1 = sc1.replaceAll("\[","").replaceAll("\]","");
            String[] doublesAsStrings1 = sc1.split(", ");
           double [] num=new double[doublesAsStrings1.length];
          for( int f = 0; f < doublesAsStrings1.length; f++ ){
              num[f] = Double.parseDouble(doublesAsStrings1[f]);
                  p.setNeighborhoodPosition(f,num[f]);}

导致错误的两行

public void setNeighborhoodPosition(int index, double value) {
        this._neighborhood_position.set(index, value);
    }
         p.setNeighborhoodPosition(f,num[f]);

谢谢

如Andreas和Stephen C的评论中所述,使用java.util.ArrayList类的方法add((,例如

public void setNeighborhoodPosition(double value) {
    this._neighborhood_position.add(value);
}

最新更新