Convert List<Object> to String[] in Java
我需要从List<Object>转换为String[]。
我做了:
1 2
| List <Object > lst ...
String arr = lst. toString(); |
但是我得到了这个字符串:
只是一个字符串,但是我需要String []
非常感谢。
- 如何将随机对象转换为字符串?
-
toString(在大多数类中)仅用于诊断消息,而不是"生产"。
-
我想在String []中转换所有列表,而无需对其进行迭代。
-
您看过List的规格吗? (我猜不是,否则您会注意到toArray。)
-
Java 8:stackoverflow.com/a/31002358/1216775
您必须遍历列表并填写您的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]);
- 将array[index] = (String) value更改为array[index] = String.valueOf( value )。如果列表中包含字符串(字符串)以外的任何内容,则答案将崩溃。也许这就是OP想要的。
您可以使用toArray()转换为Objects数组,然后使用此方法将Objects数组转换为Strings数组:
1 2
| Object[] objectArray = lst. toArray();
String[] stringArray = Arrays. copyOf(objectArray, objectArray. length, String[]. class); |
-
为什么当objectArray仍可以用作String []时,为什么要附加数组副本?
-
请参阅链接问题的底部-将objectArray强制转换为String[]会导致ClassCastException。这个答案可以更好地解释:stackoverflow.com/a/1018774/1063716
-
如果List包含字符串以外的对象,则为是。但这甚至在您的代码中也会发生。
-
List<Object> lst = new ArrayList<Object>(); lst.add(1);我正在为此测试用例获取ArrayStoreException。
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 ); |
提示以打印字符串数组: