2013-09-27 4 views
0

У меня есть имя массива «актив» с 4 номерами. Затем я преобразовал его для хранения в arraylist. Затем с копией arraylist в другой массив. Правильно ли этот алгоритм? После добавления 5 массив должен быть в состоянии показать 5 число в настоящее времяJava Array to ArrayList to Array

List assetList = new ArrayList(); 
String[] asset = {"1", "2", "3", "4"}; 

Collections.addAll(assetList, asset); 

assetList.add("5"); 

String [] aListToArray = new String[assetList.size()]; 
aListToArray.toArray(aListToArray); 
+1

Определить правильный. Какова ваша фактическая цель? Получить копию массива? Переводить между массивами и ArrayList для задания? – James

+1

вы, вероятно, можете сделать некоторую безопасность типа List , но в любом случае я не пытаюсь понять, почему вы справляетесь со списком и копируете их обратно .... если бы это был набор, который я бы понял – AurA

+0

, он соответствует моим требованиям –

ответ

2

Вы должны изменить эту строку

aListToArray.toArray(aListToArray); // aListToArray to aListToArray itself? This would have given a compilation error 

к этому

assetList.toArray(aListToArray); // assetList to aListToArray is what you need. 
1

Используйте только Arrays.asList(asset);

0

Вы можете сделать некоторые упрощения:

List assetList = new ArrayList(); 
String[] asset = {"1", "2", "3", "4"}; 

assetList.addAll(asset); 

assetList.add("5"); 

String [] aListToArray = assetList.toArray(aListToArray); 

В целом, правильный код. Однако, если вы хотите иметь «динамический массив» или коллекцию элементов, которые меняются в размере, не беспокойтесь, пытаясь сохранить что-то в форме массива. Аррайалист будет работать нормально.

+0

, как насчет того, чтобы зафиксировать первые 4 числа, а остальное динамически добавлено. – BeyondProgrammer

+0

Если вы имеете в виду, что первые 4 значения неизменяемы, то почему бы вам иметь их в коллекции, если вы знаете, что это такое? Какая цель будет служить? – Rogue