Earth Orbitting the Sun simulation Object Array not printing correctly java -


i'm trying simulate earths orbit around sun making print out current position. i'm new java , unable print "newp" array correctly within loop. @ moment i'm using-

system.out.println(arrays.deeptostring(newp)); 

i've tried:

system.out.println(arrays.tostring(newp)); 

to no avail. i've imported java util array well, i'm not sure why not working. no other errors appearing in code either. loop of code below:

do{          physicsvector[] y = new physicsvector[gravfield.length];         y=copyarray(gravfield);          for(int i=0; i<planets.length;i++){             newp[i] = planets[i].updateposition(position[i], velocity[i], timestep, gravfield[i]);          }          for(int j=0; j<gravityobject.length; j++){                 for(int l=0;l<gravityobject.length;l++){                 if(j!=l){                     newgrav[j].increaseby(gravityobject[j].aduetogravity(planetmass[l], newp[l], newp[j]));                  }              }         }          for(int k=0; k<planets.length; k++){             newvel[k] = planets[k].updatevelocity(velocity[k], timestep, y[k], newgrav[k]);         }            time+=timestep;         double x = newp[0].getx();         double ap = newp[0].gety();         n.println(x+"   "+ap);         system.out.println(arrays.deeptostring(newp));     }while (timestep<(24*60*60*365.25)); 

the output when trying print array in loop below

[physicsvector@15db9742, physicsvector@6d06d69c, physicsvector@7852e922] [physicsvector@15db9742, physicsvector@6d06d69c, physicsvector@7852e922] [physicsvector@15db9742, physicsvector@6d06d69c, physicsvector@7852e922] [physicsvector@15db9742, physicsvector@6d06d69c, physicsvector@7852e922] 

the output i'm expecting list of vectors. in advance.

you're seeing output of default tostring() implementation defined in java.lang.object class. different output have 2 main options

  • override tostring() in physicsvector class return kind of formatted string of objects contents. involves adding method physicsvector class like...

    public class physicsvector {     ....     @override     public string tostring() {         return "physicsvector[" + this.getx() + ", " + this.gety() + "]";     } 
  • convert physicsvector[] string[] using kind of map. in java8 might like

    final string[] outputarray = arrays.stream(newp).map((p) -> "physicsvector[" + p.getx() + ", " + p.gety() + "]").toarray() 

if you're not using java8 might need use loop...

final string[] outputarray = new string[newp.length] (int = 0; i< newp.length; i++) {     outputarray[i] = "physicsvector[" + newp[i].getx() + ", " + newp[i].gety() + "]"; } 

Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -