Страницы

Поиск по вопросам

вторник, 25 февраля 2020 г.

Переделать ArrayList в обычный массив String[]

#java #массивы #arraylist


Есть ArrayList который автоматически заполняется данными(ссылками). Хочу
преобразовать его в простой String[] командой:

public static ArrayList linkList = new ArrayList();

String[] url = new String[linkList.size()]; // ошибка
url = linkList.toArray(url);


Но Eсlipse ругается на  ; причем вне зависимости от того как я пытаюсь преобразовать,
в этом случае тоже будет ошибка:

String[] url = {}; // ошибка
url = linkList.toArray(new String[linkList.size()]);


В этом варианте нет ошибки:

String[] url = linkList.toArray(new String[linkList.size()]);


Но если попытаться вывести на консоль, то вместо данных я получаю вот такую ошибку:


  Ljava.lang.String;@45ds364


А вот такой вариант крашит программу:

lk.setText("Ссылка: " +url[2]);


Такой нормально покажет ссылку:

lk.setText("Ссылка: " +linkList.get(2));


Соответственно вопрос в чем может быть ошибка и  как лучше преобразовать ArrayList
в обычный массив.
    


Ответы

Ответ 1



List list = new ArrayList(); String[] arr = list.toArray(new String[list.size()]); Чтобы вывести массив, необходимо использовать Arrays.toString(): System.out.println(Arrays.toString(arr));

Ответ 2



(Щас меня заминусят, прям чувствую) Попробуйте конвертировать вот так: String[] output = new String[array.size()]; for (int i = 0; i != array.size(); i++) { output[i] = array.get(i); } Мне этот способ не один раз помог.

Комментариев нет:

Отправить комментарий