Commit e54522cf by Patryk Czarnik

Suma sprzedaży

parent 526a5af7
package sprzedaz;
import javax.swing.*;
import java.math.BigDecimal;
import java.util.List;
public class SumaWJednymMiescie_Funkcyjnie {
public static void main(String[] args) {
List<Rekord> lista = ObslugaCSV.wczytaj();
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta");
if(miasto == null) return;
// wersja BigDecimal
BigDecimal suma = lista.stream()
.filter(r -> miasto.equalsIgnoreCase(r.miasto()))
.map(r -> r.cena().multiply(BigDecimal.valueOf(r.sztuk())))
.reduce(BigDecimal.ZERO, (a, b) -> a.add(b))
;
// wersja double
double sumaD = lista.stream()
.filter(r -> miasto.equalsIgnoreCase(r.miasto()))
.mapToDouble(r -> r.cena().doubleValue() * r.sztuk())
.reduce(0.0, (a, b) -> a+b);
JOptionPane.showMessageDialog(null,
"Suma BD = " + suma + "\nSuma db = " + sumaD);
}
}
package sprzedaz;
import javax.swing.*;
import java.math.BigDecimal;
import java.util.List;
public class SumaWJednymMiescie_Imperatywnie {
public static void main(String[] args) {
List<Rekord> lista = ObslugaCSV.wczytaj();
String miasto = JOptionPane.showInputDialog("Podaj nazwę miasta");
if(miasto == null) return;
// TODO oblicz sumę wartości sprzedaży w podanym mieście
// tutaj wersja "imperatywna" (pętla i if)
// zrób też wersję "funkcyjną" w oparciu o stream i filter
// wersja BigDecimal
BigDecimal suma = BigDecimal.ZERO;
for(Rekord r : lista) {
if(miasto.equalsIgnoreCase(r.miasto())) {
suma = suma.add(r.cena().multiply(BigDecimal.valueOf(r.sztuk())));
}
}
// wersja double
double sumaD = 0;
for(Rekord r : lista) {
if(miasto.equalsIgnoreCase(r.miasto())) {
sumaD += r.cena().doubleValue() * r.sztuk();
}
}
JOptionPane.showMessageDialog(null,
"Suma BD = " + suma + "\nSuma db = " + sumaD);
}
}
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