---
title: 'Quiz: Listen in Arrays konvertieren und toArrays(...) beherrschen'
url: 'https://www.tutego.de/blog/javainsel/2020/10/quiz-listen-in-arrays-konvertieren-und-toarrays-beherrschen'
markdown: 'https://www.tutego.de/blog/javainsel/2020/10/quiz-listen-in-arrays-konvertieren-und-toarrays-beherrschen.md'
date: '2020-10-05'
description: 'Während Array.asList(...) nur ein Dektorator ist, der ein Array so aussehen lässt, als wäre es eine List, übertragen drei überladene Methoden toArray(...) aus Collection alle Elemente einer Sammlung auf eine Liste: Object[] toArray() T[] toArray(T[] a) default T[] toArray​(IntFunction generator) …'
taxonomy:
  category:
    - Allgemein
---

# Quiz: Listen in Arrays konvertieren und toArrays(...) beherrschen

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Quiz: Listen in Arrays konvertieren und toArrays(...) beherrschen

05.10.2020 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Während `Array.asList(...)` nur ein Dektorator ist, der ein Array so aussehen lässt, als wäre es eine `List`, übertragen drei überladene Methoden `toArray(...)` aus `Collection` alle Elemente einer Sammlung auf eine Liste:

- `Object[] toArray()`
- `T[] toArray(T[] a)`
- `default  T[] toArray​(IntFunction generator)` (Java 11)

Was ist das Ergebnis der Ausgabe?

```java
List list = new ArrayList( Arrays.asList( "a", "b" ) );System.out.println( list.toArray()[ 0 ] );System.out.println( list.toArray( new String[ 0 ] )[ 0 ] );System.out.println( list.toArray( new String[ 0 ] ).length );System.out.println( list.toArray( new String[ 1 ] )[ 0 ] );System.out.println( list.toArray( new String[ 1 ] ).length );System.out.println( list.toArray( value -> new String[ 1 ] )[ 0 ] );System.out.println( list.toArray( value -> new String[ 1 ] ).length );System.out.println( list.toArray().getClass() );System.out.println( list.toArray( new String[ 0 ] ).getClass() );
```

Lösung .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

```java
List list = new ArrayList( Arrays.asList( "a", "b" ) );System.out.println( list.toArray()[ 0 ] ); // aSystem.out.println( list.toArray( new String[ 0 ] )[ 0 ] ); // aSystem.out.println( list.toArray( new String[ 0 ] ).length ); // 2System.out.println( list.toArray( new String[ 1 ] )[ 0 ] ); // aSystem.out.println( list.toArray( new String[ 1 ] ).length ); // 2System.out.println( list.toArray( value -> new String[ 1 ] )[ 0 ] ); // aSystem.out.println( list.toArray( value -> new String[ 1 ] ).length ); // 2System.out.println( list.toArray().getClass() ); // class [Ljava.lang.Object;System.out.println( list.toArray( new String[ 0 ] ).getClass() ); // class [Ljava.lang.String;
```

Es hilft beim Verständnis sich den Code aus dem OpenJDK anzuschauen:

Aus der OpenJDK-Implementierung von `java.util.ArrayList`:

```java
public Object[] toArray() {
return Arrays.copyOf( elementData, size );
}
```

Aus der OpenJDK-Implementierung von `java.util.ArrayList`:

```java
public T[] toArray( T[] a ) {
if ( a.length < size ) // Make a new array of a's runtime type, but my contents: return (T[]) Arrays.copyOf( elementData, size, a.getClass() ); System.arraycopy( elementData, 0, a, 0, size ); if ( a.length > size )
a<span style="font-size: ;"></span> = null;
return a;
}
```

Aus der OpenJDK-Implementierung von `java.util.Collection`:

```java
default T[] toArray( IntFunction generator) {
return toArray(generator.apply(0));
}
```

Kategorien: [Allgemein](https://www.tutego.de/blog/javainsel/category/allgemein/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Next: [Oracle JDK vs. OpenJDK und Migration zu Azul für den kommerziellen Betrieb](https://www.tutego.de/blog/javainsel/2020/10/oracle-jdk-vs-openjdk-und-migration-zu-azul-fuer-den-kommerziellen-betrieb.md)
