Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:laboratoare:java-features [2025/01/07 21:53]
mihai.popescu1912 old revision restored (2025/01/07 20:17)
poo-ca-cd:laboratoare:java-features [2025/01/08 10:20] (current)
dragos.dragan1403 [flatMap și groupingBy]
Line 1: Line 1:
-===== Laboratorul 11: Java features =====+===== Laboratorul 11: Streams. ​Java features =====
 ==== Obiective ==== ==== Obiective ====
-  * înțelegerea conceptelor de expresii lambda și de streams 
   * familiarizarea cu metode default și cu metode statice în interfețe   * familiarizarea cu metode default și cu metode statice în interfețe
-  * utilizarea ​de structuri sintactice introduse începând cu Java 8 (var)+  * înțelegerea conceptelor ​de expresii lambda 
 +  * utilizare streams :-)
  
 +
 +<​hidden>​
 +  * utilizarea de structuri sintactice introduse începând cu Java 8 (var)
 +</​hidden>​
 ==== Metode statice și metode default în interfețe ==== ==== Metode statice și metode default în interfețe ====
 Începând cu Java 8, putem implementa metode în cadrul interfețelor,​ unde, în mod clasic, avem doar metode neimplementate (abstracte). Mai precis, noi putem să implementăm trei tipuri de metode: default (non-statice),​ statice, iar începând cu Java 9 și private. Începând cu Java 8, putem implementa metode în cadrul interfețelor,​ unde, în mod clasic, avem doar metode neimplementate (abstracte). Mai precis, noi putem să implementăm trei tipuri de metode: default (non-statice),​ statice, iar începând cu Java 9 și private.
Line 223: Line 227:
 </​code>​ </​code>​
  
-Interfața [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html | Function<​T,​ R>]] expune și metode care pot înlănșui alte operașii de tipul Function.+Interfața [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html | Function<​T,​ R>]] expune și metode care pot înlănțui alte operații de tipul Function.
   * [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html#​andThen(java.util.function.Function) | andThen(Function<​T,​ R>)]] - functia data ca parametru este executata dupa cea la care este apelata metoda   * [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html#​andThen(java.util.function.Function) | andThen(Function<​T,​ R>)]] - functia data ca parametru este executata dupa cea la care este apelata metoda
   * [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html#​compose(java.util.function.Function) | compose(Function<​T,​ R>)]] - functia data ca parametru este executata inainte de cea la care este apelata metoda   * [[https://​docs.oracle.com/​en/​java/​javase/​15/​docs/​api/​java.base/​java/​util/​function/​Function.html#​compose(java.util.function.Function) | compose(Function<​T,​ R>)]] - functia data ca parametru este executata inainte de cea la care este apelata metoda
Line 268: Line 272:
 <code java> <code java>
 IntStream.range(1,​ 4) IntStream.range(1,​ 4)
-    .forEach(System.out::​println);​+    .forEach(System.out::​println); ​// 1 2 3
 </​code>​ </​code>​
  
Line 324: Line 328:
 String[] myNewArray =  Arrays.stream((String[])myArray.toArray()) String[] myNewArray =  Arrays.stream((String[])myArray.toArray())
       .filter(x -> x.length() > 4)       .filter(x -> x.length() > 4)
-      .toArray(String[]::​new);​+      .toArray(String[]::​new); ​// "​monkey",​ "​elephant",​ "​zebra"​
 </​code>​ </​code>​
  
Line 459: Line 463:
 */ */
  
 +<​hidden>​
 ==== Limbajul Kotlin ==== ==== Limbajul Kotlin ====
 Kotlin reprezintă un limbaj de programare orientat pe obiecte, creat încât să fie interoperabil cu Java, mai precis Kotlin rulează în același mediu cu Java (în JVM), astfel noi putem să avem un proiect în care să avem clase scrise în Java și clase scrise în Kotlin, o practică care este întâlnită în proiecte din industrie (backend, Android). Kotlin reprezintă un limbaj de programare orientat pe obiecte, creat încât să fie interoperabil cu Java, mai precis Kotlin rulează în același mediu cu Java (în JVM), astfel noi putem să avem un proiect în care să avem clase scrise în Java și clase scrise în Kotlin, o practică care este întâlnită în proiecte din industrie (backend, Android).
Line 467: Line 472:
  
 Un exemplu ce ilustrează interoperabilitatea dintre Java și Kotlin poate fi găsit [[https://​github.com/​oop-pub/​oop-labs/​tree/​master/​src/​lab12/​kotlin | aici]]. Un exemplu ce ilustrează interoperabilitatea dintre Java și Kotlin poate fi găsit [[https://​github.com/​oop-pub/​oop-labs/​tree/​master/​src/​lab12/​kotlin | aici]].
 +</​hidden>​
 ==== Exerciții ==== ==== Exerciții ====
 Laboratorul trebuie rezolvat pe platforma Devmind, fiind găsit [[https://​beta.lambdachecker.io/​contest/​23|aici]] Laboratorul trebuie rezolvat pe platforma Devmind, fiind găsit [[https://​beta.lambdachecker.io/​contest/​23|aici]]
poo-ca-cd/laboratoare/java-features.1736279625.txt.gz · Last modified: 2025/01/07 21:53 by mihai.popescu1912
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0