Map ohne Verwendung eines Arrays in Java

Ich habe neulich einen Artikel wie diesen geschrieben.

Ich möchte die überverschachtelten () loswerden https://qiita.com/tkturbo/items/04960f4e3e7226de3b46

Ich habe hier geschrieben

// using custom object
const applier = (val)=>{
  const  o={
    value : val,
    apply : (unary)=>{ o.value=unary(o.value); return o; }
  };
  return o;
};
console.log(applier(name).apply(f0).apply(f1).apply(f2).value);

Lassen Sie uns dies heute in Java konvertieren.

Applier.java


public class Applier<T> {
  private T value;
  public Applier(T value) {
    this.value = value;
  }
  // import java.util.function.Function;
  public <R> Applier<R> apply(Function<? super T, ? extends R> appliable){
    return new Applier<R>(appliable.apply(this.value));
  }
  public T get() { return this.value; }
}

Dies gilt, wenn Sie die Schnittstelle java.util.function.Function verwenden.

Es ist diese eine Zeile, die der Schlüssel sein wird.

  public <R> Applier<R> apply(Function<? super T, ? extends R> appliable){

Aus diesem Grund ist es möglich, auch dann zu verarbeiten, wenn die Ein- und Ausgabe unterschiedliche Typen haben.

Zum Beispiel

System.out.println(
  new Applier<String>("0001")
    .apply(v->Integer.parseInt(v,10))
    .apply(v->v+1)
    .apply(v->String.format("%04d", v))
    .get()
);

Es kann so verwendet werden.

persönlich,

    return new Applier<R>(appliable.apply(this.value));

Diese eine Zeile fühlt sich seltsam an, deshalb möchte ich sie so schreiben.

public class Applier<T> {
  private T value;
  public Applier(T value) {
    this.value = value;
  }
  public <R> Applier<R> apply(Appliable<? super T, ? extends R> appliable){
    return new Applier<R>(appliable.applyTo(this.value));
  }
  public T get() { return this.value; }
  @FunctionalInterface
  public static interface Appliable<T, R> {
    public R applyTo(T value);
  }
}

Die öffentliche statische Schnittstelle wird verwendet, um eine Verschmutzung des Namespace zu verhindern.

Recommended Posts

Map ohne Verwendung eines Arrays in Java
Beliebige Suchmethode in einem Array mit binärer Suche
Versuchen Sie es mit RocksDB mit Java
Verwenden Sie diese Option, ohne eine Authentifizierungsdatei vorzubereiten, wenn Sie das Firebase Admin SDK in Java verwenden
Ich habe versucht, die erweiterte for-Anweisung in Java zu verwenden
[Ruby] Zähle eine gerade Zahl in einem Array mit der geraden? -Methode
Ich möchte Java Applet ohne Verwendung einer IDE erstellen
[Java8] Verwenden Sie stream, um Arrays vom Typ int in absteigender Reihenfolge zu sortieren
Generieren Sie Stream aus einem Array primitiver Typen in Java
Ich habe eine E-Mail in Java gesendet
Java-Lernnotiz (Erstellen eines Arrays)
Verschlüsselung mit RSA-Verschlüsselung in Java
Holen Sie sich null-sichere Map-Werte in Java
Verwenden Sie zusammengesetzte Schlüssel in Java Maps.
[Java] Deklarieren und initialisieren Sie ein Array
Versuchen Sie einen If-Ausdruck in Java
Ich habe eine Anmerkung in Java gemacht.
HTTPS-Verbindung mit tls1.2 in Java 6
Ich habe versucht, JWT in Java zu verwenden
So formatieren Sie Enum mit dem Formatierer-Maven-Plugin (Java)
Führen Sie einen externen Prozess in Java aus
[Java] -Array
Java-Array
Java-Array
Hinweis Nr. 1 "Zählen und Anzeigen doppelter Werte in einem Array" [Java]
Java (Array)
Java-Array
[Java] Array
JAVA (Karte)
Java-Array
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
[Android] Konvertieren Sie Map in JSON mit GSON mit Kotlin und Java
Java-Array
[Java] Array
[Java] Express-Aufzählungstyp ohne Verwendung des Aufzählungstyps (Aufzählung)
Bei der Suche nach mehreren in einem Java-Array
Doppelte Karte sortiert nach Schlüssel in Java
Versuchen Sie es mit der Stream-API in Java
Schlüssel vom Wert in Java Map umkehren
[Java] Senden Sie eine E-Mail mit Amazon SES
Java lernen Versuchen Sie es mit einem Scanner oder einer Karte
Notizen im Kopf organisieren (Java-Arrangement)
ERRORCODE = -4471 tritt in einer Java-Anwendung auf, die Db2 verwendet.
Versuchen Sie es mit der JSON-Format-API in Java
Vergleichen Sie Elemente eines Arrays (Java)
Lesen Sie Felica mit RC-S380 (PaSoRi) in Java
[Spring MVC] Implementieren Sie die in der URL enthaltenen dynamischen Parameter ohne Verwendung von Optional (~ Java7).
Ich möchte für jedes Array mit Lambda-Ausdruck in Java
[Inhouse-Lernsitzung] Java-Grundlagenausführung ohne Verwendung von IDE- (2017/07/06)
Versuchen Sie, mit Scala mithilfe der Standardbibliothek von Java Text zu einem Bild hinzuzufügen
Java-Array-Variable
[Java] Erstellen einer Excel-Datei mit Apache POI
Implementieren Sie eine Freigabeschaltfläche in Rails 6, ohne Gem zu verwenden
ChatWork4j für die Verwendung der ChatWork-API in Java
Ich möchte eine E-Mail in Java senden.
[Java] API-Erstellung mit Jerjey (Jax-rs) mit Eclipse
Senden Sie E-Mails mit Amazon SES SMTP in Java
Senden Sie Push-Benachrichtigungen über Notification Hubs in Java
Änderungen in Java 11