question: public String toString ( ) { if ( cached != null ) { return cached ; } StringBuilder sb = new StringBuilder ( ) ; for ( int i = num - 1 ; i >= 0 ; i -- ) { sb . append ( FreeCellNode . out ( cards [ i ] ) ) ; } cached = sb . toString ( ) ; return cached ; }
target:  Create in reverse order to have keys be different early. 