5

How, in Java, do I convert an ArrayList of arrays to a two-dimensional array?

Example:

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


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

I get the error that JTable(Object[], Object[]) is not defined.

2 Answers 2

16

The List<T>.toArray(T[]) method should do the job.

For example:

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

or

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

If you use this overload rather than the List<T>.toArray() overload, you can choose the actual type of the array. It takes one extra line of code, but if the array type is significant, this is the way to do it.

(The List<T>.toArray() overload gives you an array whose actual type is Object[] ... irrespective of the generic type of the list, or the actual type(s) of the list elements.)

Sign up to request clarification or add additional context in comments.

1 Comment

I see. I was using res = Object[] instead of Object[][]. Thanks! (Yes, the code in the OP is a previous version.)
3

In this case, array.toArray() will do the trick.

2 Comments

@yodie - see my answer for a better solution.
@Stephen C -- done! It just took a few seconds to comment and another three minutes to accept!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.