Looking for java Keywords? Try Ask4Keywords

Java LanguageRekursion


Einführung

Rekursion tritt auf, wenn eine Methode sich selbst aufruft. Eine solche Methode wird als rekursiv bezeichnet . Eine rekursive Methode kann prägnanter sein als ein gleichwertiger nichtrekursiver Ansatz. Bei einer tiefen Rekursion kann eine iterative Lösung jedoch manchmal weniger endlichen Stack-Platz eines Threads beanspruchen.

Dieses Thema enthält Beispiele für Rekursionen in Java.

Bemerkungen

Eine rekursive Methode entwerfen

Beachten Sie beim Entwurf einer rekursiven Methode, dass Sie Folgendes benötigen:

  • Basisfall. Dadurch wird festgelegt, wann Ihre Rekursion angehalten wird und das Ergebnis ausgegeben wird. Der Basisfall in dem faktoriellen Beispiel ist:

    if (n <= 1) {
        return 1;
    }
    
  • Rekursiver Aufruf. In dieser Anweisung rufen Sie die Methode mit einem geänderten Parameter erneut auf. Der rekursive Aufruf im obigen faktoriellen Beispiel lautet:

    else {
        return n * factorial(n - 1);
    }
    

Ausgabe

In diesem Beispiel berechnen Sie die n-te Faktornummer. Die ersten Fakultäten sind:

0! = 1

1! = 1

2! = 1 x 2 = 2

3! = 1 x 2 x 3 = 6

4! = 1 x 2 x 3 x 4 = 24

...


Java- und Tail-Call-Beseitigung

Aktuelle Java-Compiler (bis einschließlich Java 9) führen keine Tail-Call-Eliminierung durch. Dies kann sich auf die Leistung rekursiver Algorithmen auswirken. Wenn die Rekursion tief genug ist, kann dies zu Abstürzen von StackOverflowError führen. siehe Deep Rekursion ist in Java problematisch

Rekursion Verwandte Beispiele