Commit e8a46776 by Patryk Czarnik

ostatnia duża wrzutka "gotowych"

parent df98e3f2
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -13,13 +13,13 @@ public class A_TypowyPrzyklad { ...@@ -13,13 +13,13 @@ public class A_TypowyPrzyklad {
System.out.println(lista); System.out.println(lista);
System.out.println(); System.out.println();
lista.stream() lista.stream()
.filter(s -> s.contains("a")) .filter(s -> s.contains("a"))
.map(s -> s.toUpperCase()) .map(s -> s.toUpperCase())
.forEach(s -> System.out.println(s)); .forEach(s -> System.out.println(s));
System.out.println("\n=================\n");
// To odpowiada takiej pętli: // To odpowiada takiej pętli:
for(String s1 : lista) { for(String s1 : lista) {
if(s1.contains("a")) { if(s1.contains("a")) {
......
package gotowe.p31_streamy.c_przeglad_operacji; package gotowe.p31_streamy.c_przeglad_operacji;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.List;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import java.util.stream.LongStream; import java.util.stream.LongStream;
import java.util.stream.Stream; import java.util.stream.Stream;
...@@ -29,10 +30,10 @@ public class C01_Generowanie { ...@@ -29,10 +30,10 @@ public class C01_Generowanie {
System.out.println(); System.out.println();
// Kolejny element strumienia generowany "bezkontekstowo" (bez żanego parametru) // Kolejny element strumienia generowany "bezkontekstowo" (bez żanego parametru)
Stream<LocalTime> czasy = Stream.generate(() -> LocalTime.now()); Stream<LocalTime> czasy = Stream.generate(() -> LocalTime.now());
// to się zapętla: // to się zapętla:
// czasy.forEach(lt -> System.out.println(lt)); // czasy.forEach(lt -> System.out.println(lt));
// List<LocalTime> lista = czasy.toList();
czasy.limit(20).forEach(lt -> System.out.println(lt)); czasy.limit(20).forEach(lt -> System.out.println(lt));
......
...@@ -12,13 +12,12 @@ import java.util.stream.Stream; ...@@ -12,13 +12,12 @@ import java.util.stream.Stream;
public class C02_ZRoznychKlas { public class C02_ZRoznychKlas {
public static void main(String[] args) { public static void main(String[] args) {
Random random = new Random(); Random random = new Random();
// nieskończony strumień losowych intów // nieskończony strumień losowych intów
random.ints(); random.ints();
random.ints().limit(100).forEach(System.out::println); random.ints().limit(100).forEach(System.out::println);
// przykład: utwórz tablicę 100 losowych int-ów: // przykład: utwórz tablicę 100 losowych int-ów:
int[] liczbyLosowe = random.ints().limit(100).toArray(); int[] liczbyLosowe = random.ints().limit(100).toArray();
System.out.println(Arrays.toString(liczbyLosowe)); System.out.println(Arrays.toString(liczbyLosowe));
System.out.println(); System.out.println();
...@@ -34,7 +33,7 @@ public class C02_ZRoznychKlas { ...@@ -34,7 +33,7 @@ public class C02_ZRoznychKlas {
// dostęp strumieniowy // dostęp strumieniowy
// strumienie też można zamykać; ten należy zamykać // strumienie też można zamykać; ten należy zamykać
try(Stream<String> lines = Files.lines(Paths.get("pan-tadeusz.txt"))) { try(Stream<String> lines = Files.lines(Paths.get("pan_tadeusz.txt"))) {
lines.filter(s -> s.contains("Tadeusz")) lines.filter(s -> s.contains("Tadeusz"))
.sorted(Collator.getInstance()) .sorted(Collator.getInstance())
.forEachOrdered(System.out::println); .forEachOrdered(System.out::println);
......
package gotowe.p31_streamy.d_redukcje_i_grupowanie;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ZbieranieDoKolekcji {
public static void main(String[] args) {
List<String> telefony = List.of("123321123", "+48123123123", "431 666 777",
" 0048987654321", "222.333-444", "123002244");
System.out.println(telefony);
List<String> listaWynikowa1 = telefony.stream()
// .map(s -> s.replace(" ", ""))
// .map(s -> s.replaceAll("[\\s\\-.]+", ""))
.map(s -> s.replaceAll("[^\\d+]+", ""))
.map(s -> s.replaceAll("^00", "+"))
.map(s -> s.startsWith("+") ? s : "+48"+s)
.toList();
System.out.println(listaWynikowa1);
Map<Boolean, List<String>> grupy = telefony.stream()
//.map(String::strip)
.map(s -> s.replaceAll("[\\s\\-.]+", ""))
.map(s -> s.replaceAll("^00", "+"))
.collect(Collectors.partitioningBy(s -> s.startsWith("+")));
List<String> listaWynikowa2 =
Stream.concat(grupy.get(true).stream(),
grupy.get(false).stream()
.map(s -> s.startsWith("+") ? s : "+48"+s))
.toList();
System.out.println(listaWynikowa2);
System.out.println();
Map<String, Integer> collect = telefony.stream()
.map(s -> s.replaceAll("[^\\d+]+", ""))
.collect(Collectors.toMap(nr -> nr, nr -> nr.length()));
//.collect(Collectors.toCollection(TreeSet::new))
System.out.println(collect);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment