Mih*_*hai 28 java apache-commons guava
我正在寻找的是使用的通用版本Object[] java.util.Collection.toArray()或更简洁的替代品T[] java.util.Collection.toArray(T[] array).我现在可以写:
Collection<String> strings;
String[] array = strings.toArray(new String[strings.size()]);
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是:
@SuppressWarnings("unchecked")
public static <T> T[] toArray(Collection<T> collection, Class<T> clazz) {
return collection.toArray((T[]) Array.newInstance(clazz, collection.size()));
}
Run Code Online (Sandbox Code Playgroud)
我可以用它作为:
String[] array = Util.toArray(strings, String.class);
Run Code Online (Sandbox Code Playgroud)
那么在Guava或Commons Collections中实现的是什么?
当然我可以编写自己的(上面的),这似乎和theArray(T []数组一样快).
你可以缩短它
String[] array = strings.toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)
这也恰好更有效率.
使用Java 8,您也可以使用它,但它似乎不必要地复杂并且可能更慢:
String[] array = strings.stream().toArray(String[]::new); // Java 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11434 次 |
| 最近记录: |