Commit 6a20de6f by Patryk Czarnik

suma z miasta - wersje funkcyjne

parent e1f3b8ed
package sprzedaz;
import java.math.BigDecimal;
import java.util.List;
import javax.swing.JOptionPane;
public class SumaJednegoMiasta_Funkcyjnie1 {
// W tej wersji obliczamy sumę jako BigDecimal, funkcyjnie, wykorzystując tylko dostęp do pól rekordu.
public static void main(String[] args) {
String miasto = JOptionPane.showInputDialog("Podaj miasto:");
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
BigDecimal suma = transakcje.stream()
.filter(tr -> tr.miasto().equalsIgnoreCase(miasto))
.map(tr -> tr.cena().multiply(BigDecimal.valueOf(tr.sztuk())))
.reduce(BigDecimal.ZERO, BigDecimal::add);
JOptionPane.showMessageDialog(null, "Suma: " + suma);
}
}
package sprzedaz;
import java.math.BigDecimal;
import java.util.List;
import javax.swing.JOptionPane;
public class SumaJednegoMiasta_Funkcyjnie2 {
// W tej wersji obliczamy sumę jako BigDecimal, funkcyjnie, wykorzystując metodę wartosc().
public static void main(String[] args) {
String miasto = JOptionPane.showInputDialog("Podaj miasto:");
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
BigDecimal suma = transakcje.stream()
.filter(tr -> tr.miasto().equalsIgnoreCase(miasto))
.map(Transakcja::wartosc)
.reduce(BigDecimal.ZERO, BigDecimal::add);
JOptionPane.showMessageDialog(null, "Suma: " + suma);
}
}
package sprzedaz;
import java.util.List;
import javax.swing.JOptionPane;
public class SumaJednegoMiasta_Funkcyjnie3 {
// Użytkownik wprowadza nazwę miasta, a program oblicza sumę wartości transacji z tego miasta.
// W tej wersji stosujemy strumienie i podejście "funkcyjne".
public static void main(String[] args) {
String miasto = JOptionPane.showInputDialog("Podaj miasto:");
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
double suma = transakcje.stream()
.filter(tr -> tr.miasto().equalsIgnoreCase(miasto))
.mapToDouble(Transakcja::wartoscDouble)
.sum();
JOptionPane.showMessageDialog(null, "Suma: " + suma);
}
}
package sprzedaz;
import java.util.List;
import javax.swing.JOptionPane;
public class SumaJednegoMiasta_Imperatywnie3 {
// Użytkownik wprowadza nazwę miasta, a program oblicza sumę wartości transacji z tego miasta.
// W tej wersji stosujemy zwykłe pętle i ify,
// a sumę liczymy jako double.
public static void main(String[] args) {
String miasto = JOptionPane.showInputDialog("Podaj miasto:");
List<Transakcja> transakcje = ObslugaCsvTransakcji.wczytaj();
double suma = 0;
for(Transakcja tr : transakcje) {
if(tr.miasto().equalsIgnoreCase(miasto)) {
suma += tr.wartoscDouble();
}
}
JOptionPane.showMessageDialog(null, "Suma: " + suma);
}
}
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