2016-04-20 22 views
0

ich ein Objekt haben (sonde (x, y, r, Position)) whene i eine Liste von sonde i Wert ändern der Position wollen erstellen verwenden i:ändern

int sizel =arSonde.size(); 
    for(int i=0;i<sizel;i++){ 
     double x1=arSonde.get(i).x; 
     double y1=arSonde.get(i).y; 
     double rayn=arSonde.get(i).rayon; 
     double x2=arrayAction.get(0).x; 
     double y2=arrayAction.get(0).y; 
     Random random=new Random(); 

     double D =rand.nextDouble(); 
     double rayA=arrayAct.get(0).rayon; 
     if(D<rayA){ 
     arSonde.set(pos,5); 
     } 

i verwendet:

list.set(pos,element); 
+3

Könnten Sie Beispieleingabe und erwartete Ausgabe bereitstellen, um klarer zu machen, was Sie fragen? Wenn Sie die Position eines Elements in der Liste ändern möchten, verwenden Sie Collections.swap (list, i, j); – Adam

+0

Keine Position es ist eine Variable in der Objekt-Sonde Ich füge die Objekt-Sonde zu ArSonde (Arraylist) und wenn ich D mit RayA testen Ich möchte den Wert von Pos ändern – Ilyes

+0

Was ist "Sonde"? – Adam

Antwort

1

gesetzt versucht, die Position Attribut Ihrer Sonde Objekt, das Sie Angenommen, und angesichts Ihrer Felder Öffentlichkeit ...

arSonde.get(i).position = 5; 

zu sein scheinen Ihre arSonde.set(pos, 5) nennen funktioniert nicht, weil

  • pos nicht definiert ist, oder zumindest nicht in dem Code, den Sie
  • set() erwartet (Index, Element) geteilt definiert - Index ist der Integer-Index innerhalb das Array, nicht der Name des Feldes

Wenn Sonde unveränderlich ist, oder benötigt man eine andere Instanz, die Sie immer eine neue Instanz erstellen könnte und verwenden Sie den Satz (Index, Objekt) nennen ...

arSonde.set(i, new Sonde(x1, y1, rayn, 5));