[英]Is there a generic equivalent to ArrayIterator from Apache Commons Collections?
[英]Is there any generic version of toArray() in Guava or Apache Commons Collections?
我正在尋找的是Object[] java.util.Collection.toArray()
的通用版本,或者是使用T[] java.util.Collection.toArray(T[] array)
的不那么詳細的替代方法。 我現在可以寫:
Collection<String> strings;
String[] array = strings.toArray(new String[strings.size()]);
我正在尋找的是:
@SuppressWarnings("unchecked")
public static <T> T[] toArray(Collection<T> collection, Class<T> clazz) {
return collection.toArray((T[]) Array.newInstance(clazz, collection.size()));
}
我可以用它作為:
String[] array = Util.toArray(strings, String.class);
那么在Guava或Commons Collections中實現的是什么?
當然我可以編寫自己的(上面的),這似乎和theArray(T []數組一樣快)。
來自番石榴的Iterables.toArray()
。
你可以縮短它
String[] array = strings.toArray(new String[0]);
這也恰好更有效率。
使用Java 8,您也可以使用它,但它似乎不必要地復雜並且可能更慢:
String[] array = strings.stream().toArray(String[]::new); // Java 8
Guava語法是具體的
Iterables.toArray(strings, String.class);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.