2015-11-30 3 views
0

Я хочу отобразить содержимое char [] в Jtable. По-видимому, Java не может создавать Jtables с char. Поскольку я не могу сделать это напрямую, я пытаюсь преобразовать char[] в вектор для таблицы. Я пробовал следующий подход безуспешно.Как преобразовать Char [] в вектор

char[] X; 

Vector<String> vx = new Vector<String>(Arrays.asList(x)); 
+0

После ответа, я заметил, что вы пытаетесь сделать '' Vector , а не '' Vector . Вы можете уточнить? Если я начну с '{'a', 'b', 'c'}', если ответ будет '[" a "," b "," c "]' или '[" abc "]'? –

+0

Ответ должен быть ["a", "b", "c"]. Я хочу показать каждый элемент в char [] как свой собственный столбец в Jtable. – user5621297

+0

@ user5621297 Хорошо, я отредактировал свой ответ. –

ответ

0

Вы должны использовать ArrayList вместо Vector. Однако нет простого способа конвертировать. Одним из способов является

ArrayList<String> list = new ArrayList<String>(); 
for (char a : x) 
    list.add(String.valueOf(a)); 

Arrays.asList работает для массивов ссылок на объекты, не массивы примитивов, как char.

Если вы используете Java 8, другой путь

List<String> list = IntStream.range(0, x.length) 
          .mapToObj(i -> String.valueOf(x[i])) 
          .collect(Collectors.toList()); 
+0

Я попробовал это и получил «Список типов не является общим и не может быть параметризован аргументами » – user5621297

+0

Проверьте свой «импорт». Это должно быть 'import java.util.List'. –

+0

Спасибо, что помогли с этим. Мне не хватало импорт, и я установил первое сообщение об ошибке. Я попробовал пересмотренный первый подход, и единственная ошибка, которую я получаю, - «Может только перебирать массив или экземпляр java.lang.iterable». Должен ли я заменить «a» на определенное значение? – user5621297

Смежные вопросы