Wo gibt es grundlegende Prädikate wie greatThan für Guava?

7

Ich benutze die Guava-Bibliothek und habe festgestellt, dass dies ein sehr nützliches Prädikat ist nicht definiert - "größer als". Gibt es einen anderen Ort, an dem ich nach solchen Basisprädikaten suchen sollte, oder bin ich dazu verdammt, meinen eigenen Functional Support Jar, der solche Dinge enthält, zu erstellen und in alle meine Projekte zu importieren? Gibt es einen Grund, warum sie dies nicht berücksichtigen würden, aber sich die Zeit nehmen würden, ein paar andere Prädikate zu machen (in der Predicates-Klasse)?

    
Peter Recore 02.04.2011, 17:19
quelle

4 Antworten

6

Mit der Schnittstelle Predicate und den verschiedenen Hilfsmethoden zum Filtern von Sammlungen mit einem Prädikat bietet Guava einen Kern, auf dem Sie aufbauen können.

Mit der Klasse Predicates können Sie einige häufig verwendete Vergleichselemente erstellen. Ich nehme an, Sie könnten eine Verbesserung im Issue Tracker machen, wie von Mike vorgeschlagen, aber ich bin nicht sicher, ob sie es hinzufügen würden, da Guava nach einem hohen Leistungsgewicht strebt.

Wenn sie das Prädikat "greaterThan" hinzufügen würden, müssten sie auch "greaterOrEqualThan", "lesserThan", "lesserOrEqualThan" hinzufügen ... Das wäre nützlich, aber das ist eine Menge "API bloat" für Ein Prädikat, das nur eine Zeile zum Implementieren benötigt. Einen Versuch wert, though.

Eine bessere Lösung könnte ein Open-Source-Projekt sein, das Guava mit all den "nice-to-have" -Funktionalitäten erweitert, die in Guava nicht verfügbar sind. Wir könnten es "Guava-Reste" oder so etwas nennen;) Oder bitten Sie das Biscotti Projekt, solche Hilfsmethoden hinzuzufügen ( Sie haben bereits einige "nice-to-have" -Funktionalitäten, die nicht in Guava enthalten sind.

    
Etienne Neveu 02.04.2011, 20:25
quelle
13

Bereich und Bereiche (Update: Die statischen Methoden auf Ranges wurden in Range ab Guava gefaltet. 14.0) wurden nun für r10 hinzugefügt. Sie können nur tun:

%Vor%

Range s haben eine Menge anderer leistungsstarker Funktionen, einschließlich der Möglichkeit, eine Range als zusammenhängende ImmutableSortedSet über einer diskreten Domäne anzuzeigen:

%Vor%

Ich habe gerade Integer s hier gezeigt, aber Range stuff funktioniert für jedes Comparable . ContiguousSet erfordert eine DiscreteDomain für den Typ. .. Guava bietet zur Zeit DiscreteDomain.integers() , .longs() und .bigIntegers() .

    
ColinD 23.04.2011 16:09
quelle
7

Ich habe zuvor diese Funktion angefordert und auf dieses Problem . Offensichtlich wird diese Funktionalität über Bereiche implementiert, die Predicate implementieren.

    
Sean Patrick Floyd 05.04.2011 06:58
quelle
1

Predicates sammelt einige gängige Vergleichselemente aber nicht größer als eins. Ich denke nicht, dass Guave so etwas bietet. Sie können versuchen, eine Bug / Feature-Anfrage auf der Guava-Projektseite zu stellen: Ссылка

    
Mike Samuel 02.04.2011 17:22
quelle

Tags und Links