Massimo Caliman
Massimo Caliman
~1 min read

Modified

Categories

  • java

Tags

  • Java

Languages

  • Italian

Le lambda e gli steam non sono oggeti esotici da utilizzare in complessi algoritmi alla portata solo di ricercatori rinchiusi in laboratori di una multinazionale. Anche nella vita dello sviluppatore di tutti i giorni possono rendere la vita più facile, ricorda meno codice e più elegante uguale meno bug e mal di testa. Vediamo qualche semplice caso che riguarda le stringhe.

String string = "abc";
boolean contieneAlmenoUnaC = string.chars().anyMatch(c -> c == 'b');
System.out.println(contieneAlmenoUnaC);//Stampa true

boolean contieneTutteC = string.chars().allMatch(c -> c == 'b');
System.out.println(contieneTutteC);//Stampa false

boolean noneMatch_a = string.chars().noneMatch(c -> c == 'a');
System.out.println(noneMatch_a);//Stampa false

boolean noneMatch_d = string.chars().noneMatch(c -> c == 'd');
System.out.println(noneMatch_d);//Stampa true

Senza le lambda e gli stream di caratteri, ottenibile tramite il nuovo metodo chars(), probabilmente avreste ciclato sui singoli caratteri della stringa controllandoli uno alla volta, oppure avreste usato se possibile una regexpr.

Esempio della vecchia scuola

for (int i = 0; i < string.length(); i++) {
    char c = string.charAt(i);
    if (c == 'b') System.out.println("Contiene una b");
}