关于数组:在Java中将List <Object>转换为String []

Convert List<Object> to String[] in Java

我需要从List<Object>转换为String[]

我做了:

1
2
List<Object> lst ...
String arr = lst.toString();

但是我得到了这个字符串:

1
["...","...","..."]

只是一个字符串,但是我需要String []

非常感谢。


您必须遍历列表并填写您的String[]

1
2
3
4
5
6
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]);


您可以使用toArray()转换为Objects数组,然后使用此方法将Objects数组转换为Strings数组:

1
2
Object[] objectArray = lst.toArray();
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);


Java 8可以选择使用类似以下的流:

1
2
List<Object> lst = new ArrayList<>();
String[] strings = lst.stream().toArray(String[]::new);

如果我们非常确定List<Object>将包含String的集合,那么可以尝试一下。

1
2
3
4
5
List<Object> lst = new ArrayList<Object>();
lst.add("sample");
lst.add("simple");
String[] arr = lst.toArray(new String[] {});
System.out.println(Arrays.deepToString(arr));

使用番石榴

1
2
List<Object> lst ...    
List<String> ls = Lists.transform(lst, Functions.toStringFunction());

很多有用的概念:

1
2
3
List<Object> list = new ArrayList<Object>(Arrays.asList(new String[]{"Java","is","cool"}));
String[] a = new String[list.size()];
list.toArray(a);

提示以打印字符串数组:

1
System.out.println(Arrays.toString(a));