code: public static final char[][] arrayConcat(char[][] first, char[][] second)
  	{
  		if (first == null)
  		{
  			return second;
  		}
  		if (second == null)
  		{
  			return first;
  		}
  
  		int length1 = first.length;
  		int length2 = second.length;
  		char[][] result = new char[length1 + length2][];
  		System.arraycopy(first, 0, result, 0, length1);
  		System.arraycopy(second, 0, result, length1, length2);
  		return result;
  	}
docs: Answers the concatenation of the two arrays. It answers null if the two arrays are null. If the first array is
  null, then the second array is returned. If the second array is null, then the first array is returned. <br>
  <br>
  For example:
  <ol>
  <li>
  
  <pre>
  first = null
  second = null
  =&gt; result = null
  </pre>
  
  </li>
  <li>
  
  <pre>
  first = { { ' a' } }
  second = null
  =&gt; result = { { ' a' } }
  </pre>
  
  </li>
  <li>
  
  <pre>
  first = null
  second = { { ' a' } }
  =&gt; result = { { ' a' } }
  </pre>
  
  </li>
  <li>
  
  <pre>
  first = { { ' b' } }
  second = { { ' a' } }
  =&gt; result = { { ' b' }, { ' a' } }
  </pre>
  
  </li>
  </ol>
  
  @param first
  the first array to concatenate
  @param second
  the second array to concatenate
  @return the concatenation of the two arrays, or null if the two arrays are null.