Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SzkolenieALX_ProjektPatryka
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
SzkolenieALX_ProjektPatryka
Commits
373af7f0
Commit
373af7f0
authored
Jun 14, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
getWartosc i przykłady
parent
14b0b232
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
78 additions
and
0 deletions
+78
-0
P1_SumaSztuk.java
src/sprzedaz/P1_SumaSztuk.java
+24
-0
P2_SredniaWartosc.java
src/sprzedaz/P2_SredniaWartosc.java
+44
-0
Rekord.java
src/sprzedaz/Rekord.java
+10
-0
No files found.
src/sprzedaz/P1_SumaSztuk.java
0 → 100644
View file @
373af7f0
package
sprzedaz
;
import
java.util.List
;
public
class
P1_SumaSztuk
{
public
static
void
main
(
String
[]
args
)
{
List
<
Rekord
>
lista
=
ObslugaCSV
.
wczytaj
(
"sprzedaz.csv"
);
// oblicz sumę wartości w polu "sztuk"
// styl "imperatywny"
int
suma
=
0
;
for
(
Rekord
rekord
:
lista
)
{
suma
+=
rekord
.
getSztuk
();
}
System
.
out
.
println
(
suma
);
// styl "funkcyjny"
int
suma2
=
lista
.
stream
().
mapToInt
(
Rekord:
:
getSztuk
).
sum
();
System
.
out
.
println
(
suma2
);
}
}
src/sprzedaz/P2_SredniaWartosc.java
0 → 100644
View file @
373af7f0
package
sprzedaz
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.List
;
public
class
P2_SredniaWartosc
{
public
static
void
main
(
String
[]
args
)
{
List
<
Rekord
>
lista
=
ObslugaCSV
.
wczytaj
(
"sprzedaz.csv"
);
// oblicz średnią wartość transakcji
// styl "imperatywny"
// gdybyśmy mieli tylko metodę zwracającą cenę jako BigDecimal i chcieli liczcyć na BigDecimalach:
BigDecimal
suma
=
BigDecimal
.
ZERO
;
for
(
Rekord
rekord
:
lista
)
{
// add działa jak + a nie jak +=
suma
=
suma
.
add
(
rekord
.
getCena
().
multiply
(
BigDecimal
.
valueOf
(
rekord
.
getSztuk
())));
}
System
.
out
.
println
(
"suma: "
+
suma
);
BigDecimal
sredniaBD
=
suma
.
divide
(
BigDecimal
.
valueOf
(
lista
.
size
()),
2
,
RoundingMode
.
HALF_EVEN
);
System
.
out
.
println
(
"średnia BD: "
+
sredniaBD
);
// Do klasy Rekord można dodać metody, które "wyglądają jak gettery",
// ale obliczają swoje wyniki na podstawie innych pól obiektu.
// Ma to sens, jeśli danej operacji potrzebujemy często, w różnych miejscach kodu.
double
sumaDouble
=
0.0
;
for
(
Rekord
rekord
:
lista
)
{
sumaDouble
+=
rekord
.
getWartoscDouble
();
}
double
sredniaDouble
=
sumaDouble
/
lista
.
size
();
System
.
out
.
println
(
"średnia D: "
+
sredniaDouble
);
// wersja funkcyjna:
double
sredniaStream
=
lista
.
stream
().
mapToDouble
(
Rekord:
:
getWartoscDouble
).
average
().
orElse
(
0.0
);
System
.
out
.
println
(
"średnia S: "
+
sredniaStream
);
double
sredniaPStream
=
lista
.
parallelStream
().
mapToDouble
(
Rekord:
:
getWartoscDouble
).
average
().
orElse
(
0.0
);
System
.
out
.
println
(
"średnia P: "
+
sredniaPStream
);
}
}
src/sprzedaz/Rekord.java
View file @
373af7f0
...
@@ -50,6 +50,16 @@ public class Rekord {
...
@@ -50,6 +50,16 @@ public class Rekord {
public
int
getSztuk
()
{
public
int
getSztuk
()
{
return
sztuk
;
return
sztuk
;
}
}
public
BigDecimal
getWartosc
()
{
return
cena
.
multiply
(
BigDecimal
.
valueOf
(
sztuk
));
}
public
double
getWartoscDouble
()
{
return
getWartosc
().
doubleValue
();
// alternatywnie, aby podnieść wydajność:
// return cena.doubleValue() * sztuk;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment