Java 11
Arayüzdeki yeni varsayılan toArray
yöntem Collection
, koleksiyon öğelerinin istenen çalışma zamanı türünde yeni oluşturulan bir diziye aktarılmasını sağlar. Bu alan IntFunction<T[]> generator
argüman olarak ve olarak kullanılabilir:
String[] array = set.toArray(String[]::new);
Zaten benzer bir yöntem var Collection.toArray(T[])
ve bu ekleme artık geçemeyeceğimiz anlamına geliyornull
argüman olarak , çünkü bu durumda yönteme referans belirsiz olacaktır. Ancak her iki yöntem de bir NPE attığından hala iyi.
Java 8
Java 8'de akış API'sini kullanabiliriz:
String[] array = set.stream().toArray(String[]::new);
Ayrıca aşırı yüklü sürümü yararlanabilir ToArray () alır IntFunction<A[]> generator
gibidir:
String[] array = set.stream().toArray(n -> new String[n]);
Buradaki jeneratör fonksiyonunun amacı bir tamsayı (istenen dizinin boyutu) almak ve istenen boyutta bir dizi üretmektir. Ben şahsen metodu referans kullanarak önceki yaklaşımı lambda ifadesini kullanarak daha sonradan tercih ederim.
toArray()
açıkça Javadoc belirtilen yönteme.