Diese Frage ist nur zum Spaß.Gib die N letzten Elemente in Java Streams zurück
Ich habe diese Methode:
private static String getBaseDomain(String fullDomain) {
// we take the base domain from the usual xxx.yyy.basedomain.tld: we
// want only the last 2 elements: basedomain.tld
List<String> elements = Arrays.asList(fullDomain.split("\\."));
if(elements.size() > 2){
elements = elements.subList(elements.size()-2, elements.size());
}
return String.join(".", elements);
}
Und ich frage mich, wie das gleiche Ergebnis zu erhalten, den Java-Stream-API (eigentlich ich frage mich, welche Methode wäre die ressourceneffiziente).
Ich kann nicht verstehen, wie man nur die letzten zwei Elemente aus einem Stream zu bekommen: limit(2)
gibt mir die erste zwei, und für skip(XXX)
ich weiß nicht, wie die Größe des Stroms „inline“ zu extrahieren .
Können Sie mir sagen, wie Sie es tun würden?
Ich empfehle, eine Art von Falte mit Warteschlange als Akkumulator zu verwenden und Element zu entfernen, wenn es eine bestimmte Größe erreicht. – talex