GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • java.evolved

This view

  • Original page
  • New address

GeezerVison is showing javaevolved.dev — Functional Programming — java.evolved

Home / Topics / Functional Programming
🏷 Functional Programming 5 patterns

Topic: Functional Programming

All Java patterns related to Functional Programming — java.evolved

Language

Anonymous classes to lambdas and method references

Old button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { save(event); } });
Modern button.addActionListener(this::save);
hover to see modern →
JDK 8+ learn more →
Collections

Atomic map updates with compute and merge

Old List<String> values = groups.get(key); if (values == null) { values = new ArrayList<>(); groups.put(key, values); } values.add(value);
Modern groups.computeIfAbsent(key, ignored -> new ArrayList<>()) .add(value);
hover to see modern →
JDK 8+ learn more →
Collections

Collection bulk operations instead of mutation loops

Old for (Iterator<Order> it = orders.iterator(); it.hasNext();) { if (it.next().cancelled()) { it.remove(); } }
Modern orders.removeIf(Order::cancelled);
hover to see modern →
JDK 8+ learn more →
Collections

Comparator factories and fluent ordering

Old people.sort(new Comparator<Person>() { @Override public int compare(Person a, Person b) { int byName = a.name().compareTo(b.name()); return byName != 0 ? byName : Integer.compare(a.age(), b.age()); } });
Modern people.sort(Comparator.comparing(Person::name) .thenComparingInt(Person::age));
hover to see modern →
JDK 8+ learn more →
Streams

Predicate.not() for negation

Old List<String> nonEmpty = list.stream() .filter(s -> !s.isBlank()) .collect(Collectors.toList());
Modern List<String> nonEmpty = list.stream() .filter(Predicate.not(String::isBlank)) .collect(Collectors.toList());
hover to see modern →
JDK 11+ learn more →
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.