seconda cosa strana che noto:

questo programma stampa correttamente p != null

codice:
public void aggiungiValori(){

      arrayOfcols[2] = new Node(2,3,4);
      Node p = arrayOfcols[2];
      if(p != null) System.out.println("p è diverso da null!");
  }
questo programma invece non stampa nulla...ma come è possibile? (ho solo invertito due istruzioni)

codice:
  
  public void aggiungiValori(){
      Node p = arrayOfcols[2];
      arrayOfcols[2] = new Node(2,3,4);
      if(p != null) System.out.println("p è diverso da null!");
  }
se puo servire, riporto il codice completo, ma non dovrebbe essere troppo difficile al limite ricostruirsi una cosa simile.