Преобразовать список <Object> в String [] в Java
Мне нужно преобразовать из List<Object>
в String[]
.
Я сделал:
List<Object> lst ...
String arr = lst.toString();
Но я получил эту строку:
["...", "...", "..."]
- это всего лишь одна строка, но мне нужна строка []
Большое спасибо.
Ответы
Ответ 1
Вам нужно пройти через список и заполнить String[]
.
String[] array = new String[lst.size()];
int index = 0;
for (Object value : lst) {
array[index] = (String) value;
index++;
}
Если список будет иметь значения String
, List, это будет так же просто, как вызвать lst.toArray(new String[0])
;
Ответ 2
Вы можете использовать toArray() для преобразования в массив объектов, за которым следует этот метод, чтобы преобразовать массив объектов в массив строк:
Object[] objectArray = lst.toArray();
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
Ответ 3
Если мы уверены, что List<Object>
будет содержать коллекцию String
, возможно, попробуйте это.
List<Object> lst = new ArrayList<Object>();
lst.add("sample");
lst.add("simple");
String[] arr = lst.toArray(new String[] {});
System.out.println(Arrays.deepToString(arr));
Ответ 4
Java 8 имеет возможность использования потоков, таких как:
List<Object> lst = new ArrayList<>();
String[] strings = lst.stream().toArray(String[]::new);
Ответ 5
Здесь будет много понятий, которые будут полезны:
List<Object> list = new ArrayList<Object>(Arrays.asList(new String[]{"Java","is","cool"}));
String[] a = new String[list.size()];
list.toArray(a);
Совет для печати массива строк:
System.out.println(Arrays.toString(a));
Ответ 6
Использование Guava
List<Object> lst ...
List<String> ls = Lists.transform(lst, Functions.toStringFunction());