2010-12-07 5 views
5

Как в Java преобразовать массив массивов ArrayList в двумерный массив?Convert ArrayList <Object[]> to Object [] []

Пример:

ArrayList<String[]> results = new ArrayList<String[]>(); 
String [] columns = {a few strings}; 


JTable table = new JTable(results.toArray(), columns); 

я получаю ошибку, что JTable (Object [], Object []) не определено.

ответ

15

Метод List<T>.toArray(T[]) должен выполнять эту работу.

Например:

List<String[]> list = ... 
String[][] res = new String[list.size()][]; 
list.toArray(res); 

или

List<String[]> list = ... 
Object[][] res = new Object[list.size()][]; 
list.toArray(res); 

Если вы используете эту перегрузку, а не перегрузки List<T>.toArray(), вы можете выбрать фактический тип массива. Он занимает одну дополнительную строку кода, но если тип массива значителен, это способ сделать это.

(Перегрузка List<T>.toArray() дает массив, фактический тип Object[] ... независимо родового типа списка или фактического типа (ов) элементов списка.)

3

В этом случае array.toArray() сделает трюк.

+0

Не работает. Я отредактирую OP. – yodie 2010-12-07 00:56:05

+0

@yodie - см. Мой ответ для лучшего решения. – 2010-12-07 01:01:47