Wie erstelle ich einen leeren Stream in Java?

73

In C # würde ich verwenden Enumerable.Empty(), aber wie erstelle ich ein Leerzeichen Streamin Java?

sdgfsdh
quelle
3
StackOverflow ist Google-fähiger als die Dokumentation.
SDGFSDH
2
Sie brauchen Google überhaupt nicht. Es gibt genau eine Adresse, die einmal mit einem Lesezeichen versehen werden muss, wenn mit der Entwicklung von Java-Software begonnen wird: docs.oracle.com/javase/8/docs/api. Dies ist die offizielle API-Dokumentation, die jedes Paket, jede Klasse und jedes Mitglied in einer Struktur enthält, für die keine Suchmaschine erforderlich ist finde sie.
Holger
8
Wenn Sie bereits wissen, dass es existiert, dann ja. Aber Java ist reich an Bibliotheksmethoden, von denen Sie vielleicht hoffen, dass sie existieren, die sich jedoch nicht herausstellen (oder nicht dort, wo Sie gedacht haben, oder mit dem Namen, den Sie gedacht haben), und Sie könnten einen Großteil Ihres Lebens damit verbringen, nach ihnen zu suchen, wenn Sie immer die gemacht haben API-Dokument Ihre erste Anlaufstelle.
Andrew Spencer

Antworten:

133

So einfach ist das: Stream.empty()

Eugene
quelle
8
Verwenden Sie für einen bestimmten Typ Stream, Stream.<T>empty()dhStream.<String>empty()
Mugen
@Mugen nein, das solltest du nicht. Warum denkst du, dass?
Eugene
Wenn Sie dies nicht tun, geht der Compiler davon aus Stream<? extends Object>, dass es sich um einen Typ handelt , und warum nicht?
Mugen
@Mugen Sie müssen ein Beispiel angeben oder eine Frage stellen. So sollte die Typinferenz nicht funktionieren.
Eugene
Ich habe einen Tipp gegeben. Wenn Sie glauben, dass ich falsch liege, werde ich ihn löschen, da dies Ihre Antwort ist und ich nicht beabsichtige, eine neue Diskussion zu beginnen.
Mugen
9
Stream<String> emptyStr = Stream.of();

emptyStr.count() gibt 0 (Null) zurück.


Und dazu:

  • Für einen primitiven Strom wie IntStream, IntStream.of()arbeitet in ähnlicher Weise (auch die emptyMethode). IntStream.of(new int[]{})Gibt auch einen leeren Stream zurück.
  • Die ArraysKlasse verfügt über Stream-Erstellungsmethoden, die ein Array von Grundelementen oder einen Objekttyp akzeptieren. Dies kann verwendet werden, um einen leeren Stream zu erstellen. Beispiel: System.out.println(Arrays.stream(new int[]{}).count());Gibt Null aus.
  • Jeder Stream, der aus einer Sammlung (wie einem Listoder Set) mit null Elementen erstellt wurde, kann einen leeren Stream zurückgeben. Beispiel: new ArrayList<Integer>().stream()Gibt einen leeren Stream vom Typ zurück Integer.
prasad_
quelle
Dies ist kürzer als die akzeptierte Antwort; Man wundert sich, warum Stream.empty()das geschaffen wurde.
SDGFSDH
7
Im Gegensatz dazu Stream.empty()erstellt es intern ein leeres Array, führt eine Nullprüfung durch usw. Sie können es in der Implementierung nachschlagen.
Marcin Majkowski