Gibt es eine Entsprechung zu LINQ Single in Java? Vielleicht in lambdaj?LINQs Single in Java?
Antwort
Ich wollte in Guava nach einem Beispiel suchen , aber meine Netzwerkverbindung ist gestorben :) –
Es ist ein ziemlich leicht selbst zu implementieren, um ehrlich zu sein:
public static <T> T single(Iterable<T> source) {
Iterator<T> iterator = source.iterator();
if (!iterator.hasNext()) {
throw new IllegalArgumentException("No elements");
}
T first = iterator.next();
if (iterator.hasNext()) {
throw new IllegalArgumentException("More than one element");
}
return first;
}
(Oder es in einer allgemeinen Klasse setzt stattdessen die Methode generisch machen Sie entscheiden, können auch eine andere Ausnahmetyp zu verwenden. .)
Dennoch bevorzuge ich @ Emils Antwort, wenn man davon ausgeht, dass Guave leicht genug ist. Mit Maven ist der Import von Drittanbieter-Bibliotheken so einfach, dass die "Integriere eine neue Bibliothek" -Schranke verringert wird. Siehe auch http://stackoverflow.com/questions/4263607/what-is-the-de-facto-standard-for-action-func-klassen – ripper234
Übrigens, wo warst du in den letzten Tagen ??? Ich habe in den letzten Tagen ungefähr 25 Fragen gestellt, einige von ihnen sind immer noch unbeantwortet, und ich bin mir sicher, dass Sie die Antworten zu 90% von ihnen kennen :) Fast alle von ihnen sind wichtiger als diese Frage ... http: // stackoverflow.com/users/11236/ripper234 – ripper234
@ ripper234: Oh Guava ist eine wunderbare Bibliothek, und wenn Sie gerne eine zusätzliche Bibliothek verwenden, ist es * absolut * wert, zu haben. Und wenn man sich die ersten paar Seiten Ihrer Fragen ansieht, handelt es sich um datenbankbezogene, die ich nicht kennen würde :( –
Eine weniger defensive Version von @ Jons Lösung.
Collection<T> coll;
T first = col.iterator().next();
Fügen Sie Schecks nach Geschmack hinzu.
Das wäre näher an der "Ersten" Methode von LINQ. –
Wenn Sie meine xpresso Bibliothek verwenden, können Sie schreiben: x.list(iterable).toScalar();
- 1. LINQs SelectMany Equivalent in OData
- 2. LINQs verzögerte Ausführung, aber wie?
- 3. Java: High-Performance-Message-Passing (single-Produzent/Single-Consumer)
- 4. Single-Sign-on-Java und NodeJs (Share single-Session-Objekt zwischen Java und Nodejs)
- 5. das gleiche Objekt verwenden, um mehrere LINQs
- 6. java single writer und multiple reader
- 7. Java Simple und Single Threading IllegalMonitorStateException
- 8. Regex Java String Split von Single Asterisk
- 9. konvertieren Single Threaded Server in Multi Threaded in JAVA
- 10. So verwenden Sie Linqs .Count() -Methode in einer bedingten Anweisung
- 11. Verletzung der Single-Verantwortung-Prinzip in Iterator von Java-Core
- 12. wie single die Liste der Liste in Java
- 13. Single entspricht in MYSQL
- 14. single Anmelden in asp.net
- 15. Multithreaded Single-Reader Single-Writer-Fifo-Warteschlange
- 16. Bietet LINQs ExecuteCommand Schutz vor SQL-Injection-Angriffen?
- 17. Double Single Klicken in XNA
- 18. Single Table Vererbung in Django
- 19. ffmpeg single quote in drawtext
- 20. Was ist Java äquivalent zu C# 's Single() Operator?
- 21. Passing Single Element Array Inline
- 22. Least-restriktive Speicherordnung für Single-Producer, Single-Consumer-Ringpuffer?
- 23. Convert single char in String in Kleinbuchstaben
- 24. AngularFire - entfernen Single Item
- 25. NSPredicate Single Quote Ausgabe
- 26. Hibernate Single Table Hierarchy
- 27. Single vs Double-Datentypen
- 28. EntityFramework Single Verbindungszeichenfolge
- 29. Arrays vs Single Vars
- 30. Anorm: Escape Single-Zitat
prüfen diese ein: github.com/nicholas22/jpropel-light, Beispiel: new String [] {"James", "John", "John", "Eddie"} .where (StartsWith ("j")). ToList(). Distinct(); –
jpropel scheint nett, aber ich kann es nicht in maven repo finden. schade ... –