Because arrays are fixed size, the rule of thumb is to only use arrays when you know in advance exactly how big they will need to be. For dynamic arrays, use ArrayList (or Vector if multi-threading).