Trie vs. Suffix-Baum vs. Suffix-Array

Welche Struktur liefert die besten Leistungsergebnisse? trie (Präfixbaum), Suffixbaum oder Suffixarray? Gibt es ähnliche Strukturen? Was sind gute Java-Implementierungen dieser Strukturen?

Bearbeiten: In diesem Fall möchte ich einen String-Abgleich zwischen einem großen Wörterbuch mit Namen und einem großen Satz von Texten in natürlicher Sprache durchführen, um die Namen des Wörterbuchs in Texten zu identifizieren.