{"id":4529,"date":"2020-10-05T13:50:55","date_gmt":"2020-10-05T11:50:55","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=4529"},"modified":"2020-10-25T12:49:46","modified_gmt":"2020-10-25T10:49:46","slug":"quiz-listen-in-arrays-konvertieren-und-toarrays-beherrschen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2020\/10\/quiz-listen-in-arrays-konvertieren-und-toarrays-beherrschen\/","title":{"rendered":"Quiz: Listen in Arrays konvertieren und toArrays(&#8230;) beherrschen"},"content":{"rendered":"\r\n<p>W\u00e4hrend <code>Array.asList(...)<\/code> nur ein Dektorator ist, der ein Array so aussehen l\u00e4sst, als w\u00e4re es eine <code>List<\/code>, \u00fcbertragen drei \u00fcberladene Methoden <code>toArray(...)<\/code> aus <code>Collection<\/code> alle Elemente einer Sammlung auf eine Liste:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><code>Object[] toArray()<\/code><\/li>\r\n<li><code>&lt;T&gt; T[] toArray(T[] a)<\/code><\/li>\r\n<li><code>default &lt;T&gt; T[] toArray\u200b(IntFunction&lt;T[]&gt; generator)<\/code> (Java 11)<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Was ist das Ergebnis der Ausgabe?<\/p>\r\n\r\n\r\n\r\n<pre>List&lt;String&gt; list = new ArrayList&lt;&gt;( Arrays.asList( \"a\", \"b\" ) );<br \/>System.out.println( list.toArray()[ 0 ] );<br \/>System.out.println( list.toArray( new String[ 0 ] )[ 0 ] );<br \/>System.out.println( list.toArray( new String[ 0 ] ).length );<br \/>System.out.println( list.toArray( new String[ 1 ] )[ 0 ] );<br \/>System.out.println( list.toArray( new String[ 1 ] ).length );<br \/>System.out.println( list.toArray( value -&gt; new String[ 1 ] )[ 0 ] );<br \/>System.out.println( list.toArray( value -&gt; new String[ 1 ] ).length );<br \/>System.out.println( list.toArray().getClass() );<br \/>System.out.println( list.toArray( new String[ 0 ] ).getClass() );<\/pre>\r\n\r\n\r\n\r\n<p>L\u00f6sung .<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<p>.<\/p>\r\n\r\n\r\n\r\n<pre>List&lt;String&gt; list = new ArrayList&lt;&gt;( Arrays.asList( \"a\", \"b\" ) );<br \/>System.out.println( list.toArray()[ 0 ] ); \/\/ a<br \/>System.out.println( list.toArray( new String[ 0 ] )[ 0 ] ); \/\/ a<br \/>System.out.println( list.toArray( new String[ 0 ] ).length ); \/\/ 2<br \/>System.out.println( list.toArray( new String[ 1 ] )[ 0 ] ); \/\/ a<br \/>System.out.println( list.toArray( new String[ 1 ] ).length ); \/\/ 2<br \/>System.out.println( list.toArray( value -&gt; new String[ 1 ] )[ 0 ] ); \/\/ a<br \/>System.out.println( list.toArray( value -&gt; new String[ 1 ] ).length ); \/\/ 2<br \/>System.out.println( list.toArray().getClass() ); \/\/ class [Ljava.lang.Object;<br \/>System.out.println( list.toArray( new String[ 0 ] ).getClass() ); \/\/ class [Ljava.lang.String;<\/pre>\r\n\r\n\r\n\r\n<p>Es hilft beim Verst\u00e4ndnis sich den Code aus dem OpenJDK anzuschauen:<\/p>\r\n\r\n\r\n\r\n<p>Aus der OpenJDK-Implementierung von <code>java.util.ArrayList<\/code>:<\/p>\r\n\r\n\r\n\r\n<p>public Object[] toArray() {<br \/>return Arrays.copyOf( elementData, size );<br \/>}<\/p>\r\n\r\n\r\n\r\n<p>Aus der OpenJDK-Implementierung von <code>java.util.ArrayList<\/code>:<\/p>\r\n\r\n\r\n\r\n<p>public T[] toArray( T[] a ) {<br \/>if ( a.length &lt; size ) \/\/ Make a new array of a&#8217;s runtime type, but my contents: return (T[]) Arrays.copyOf( elementData, size, a.getClass() ); System.arraycopy( elementData, 0, a, 0, size ); if ( a.length &gt; size )<br \/>a[ size ] = null;<br \/>return a;<br \/>}<\/p>\r\n\r\n\r\n\r\n<p>Aus der OpenJDK-Implementierung von <code>java.util.Collection<\/code>:<\/p>\r\n\r\n\r\n\r\n<p>default T[] toArray( IntFunction generator) {<br \/>return toArray(generator.apply(0));<br \/>}<\/p>\r\n\r\n\r\n\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>W\u00e4hrend Array.asList(&#8230;) nur ein Dektorator ist, der ein Array so aussehen l\u00e4sst, als w\u00e4re es eine List, \u00fcbertragen drei \u00fcberladene Methoden toArray(&#8230;) aus Collection alle Elemente einer Sammlung auf eine Liste: Object[] toArray() &lt;T&gt; T[] toArray(T[] a) default &lt;T&gt; T[] toArray\u200b(IntFunction&lt;T[]&gt; generator) (Java 11) Was ist das Ergebnis der Ausgabe? List&lt;String&gt; list = new ArrayList&lt;&gt;( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-4529","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4529"}],"version-history":[{"count":2,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4529\/revisions"}],"predecessor-version":[{"id":4559,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4529\/revisions\/4559"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}