Si tu peux savoir ce qu'il y a dedans :
List<MonType> maListe = new ArrayList<MonType>();
Alors qu'avec ta solution, on double (au minimum) le nombre de tableau utilisé, on parcours n fois une boucle avec x itération. Généralement, quand on a absolument besoin d'utilisé des tableaux (et pas des listes), c'est pour des algos assez costauds. Ta solution n'est donc vraiment pas adaptée.
De plus, ta solution n'est acceptable que pour des tableaux de type primitifs, puisque tu fais int[] temp=tab;
ce qui est généralement pas très fiable (en POO, tu ne copies pas la valeur de l'objet mais la référence, et donc toute modification sur l'autre sera logiquement impactée sur l'autre).
Bon, je connais pas bien les tableaux en Java, je suis toujours passé par des List.