もし配列を使うなら、根本的にスマートな方法はない。
改善するなら、for文で1つずつコピーするんじゃなく、
System.arraycopyメソッドでまとめてコピーした方が(たいていは)速い、って程度。

例えばStringクラスは、内部ではchar配列で文字列を保持してる。

で、文字列をchar配列で取得するメソッドtoCharArray()を実行すると、
内部配列をそのまま返すのではなく、新しい配列を作ってコピーして返す。
内部配列をいじくられたら困るから。


あと、配列の代わりにListを使うと、少しだけスマートになる、かも。