diff --git a/.project b/.project
new file mode 100644
index 0000000..4da22b8
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+
+
+ Bank-System
+
+
+
+
+
+
+
+
diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath
index 257ce1d..6220d0d 100644
--- a/Bank-Beispiel/.classpath
+++ b/Bank-Beispiel/.classpath
@@ -1,11 +1,7 @@
-
-
-
-
-
+
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java
new file mode 100644
index 0000000..55bb7a7
--- /dev/null
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/Testobject01.java
@@ -0,0 +1,13 @@
+package de.hs_mannheim.informatik.bank;
+
+public class Testobject01 {
+
+ public static void main(String[] args)
+ {
+
+
+
+
+ }
+
+}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
index fbdff21..ef527b3 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java
@@ -1,8 +1,16 @@
package de.hs_mannheim.informatik.bank.domain;
import java.io.Serializable;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.LongSupplier;
+import java.util.stream.Collectors;
+import java.util.stream.LongStream;
+import java.util.stream.Stream;
+
public class Bank implements Serializable {
private String name;
@@ -43,5 +51,71 @@ public class Bank implements Serializable {
public Konto findeKonto(int kontonummer) {
return konten.get(kontonummer);
}
+ public Collection filtering(int x)
+ {
+ Collection kontenTemp = konten.values();
+ Map> temp = kontenTemp.stream().collect(
+ Collectors.groupingBy(n -> n.getKontoart()));
+ switch(x)
+ {
+ case 1: return temp.get(Kontoart.Sparkonto);
+ case 2: return temp.get(Kontoart.Girokonto);
+ case 3: return temp.get(Kontoart.Tagesgeldkonto);
+ default:
+ List output = null;
+ for(Kontoart key : temp.keySet())
+ {
+ for(Konto k : temp.get(key))
+ {
+ output.add(k);
+ }
+
+ }
+ return output;
+ }
+
+ }
+ public long findMax()
+ {
+ Collection kontenTemp = konten.values();
+ // Long maxy = kontenTemp.stream().map(n -> n.getKontostand()).reduce(Long::max).get();
+ long max = kontenTemp.stream().map(n -> n.getKontostand()).max((a,b) ->
+ a.compareTo(b)).get();
+
+
+ return max;
+ }
+ public long findmin()
+ {
+ Collection kontenTemp = konten.values();
+
+ long min = 0;
+
+ for(Konto k : kontenTemp)
+ {
+ if(min > k.getKontostand())
+ min = k.getKontostand();
+ }
+ return min;
+ }
+ public long findaverage()
+ {
+
+Collection kontenTemp = konten.values();
+
+ long average = 0;
+ int i = 0;
+ for(Konto k : kontenTemp)
+ {
+ i++;
+ average += k.getKontostand();
+
+ }
+
+ return average/i;
+
+ }
+
+
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java
index d8f12a9..05485ec 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java
@@ -7,6 +7,7 @@ public class Girokonto extends Konto implements Serializable {
public Girokonto(String inhaber, int kontozähler) {
super(inhaber, kontozähler);
+ this.k = Kontoart.Girokonto;
}
public boolean überweise(Girokonto ziel, long betrag, String zweck) {
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java
index e787df5..322227e 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java
@@ -7,7 +7,7 @@ public class Konto implements Serializable {
private int nummer;
protected long stand = 0;
private String inhaber;
-
+ protected Kontoart k = Kontoart.Sparkonto;
protected ArrayList kontobewegungen;
public Konto(String inhaber, int kontozähler) {
@@ -72,5 +72,9 @@ public class Konto implements Serializable {
return saldo;
}
+ public Kontoart getKontoart()
+ {
+ return k;
+ }
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java
index 10c9528..2ac4498 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/Banksystem.java
@@ -1,6 +1,9 @@
package de.hs_mannheim.informatik.bank.facade;
import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
import de.hs_mannheim.informatik.bank.domain.Bank;
import de.hs_mannheim.informatik.bank.domain.Girokonto;
@@ -92,5 +95,22 @@ public class Banksystem {
return konto.berechneSaldo(anzahl);
}
+ public String[] filtering(int x)
+ {
+ Collection konten = bank.filtering(x);
+ String[] liste = new String[konten.size()];
+
+ int i = 0;
+ for (Konto k : konten) {
+ liste[i++] = k.toString();
+ }
+
+ return liste;
+
+ }
+ public long findMax()
+ {
+ return bank.findMax();
+ }
}
diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java
index a7c3541..48844bb 100644
--- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java
+++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java
@@ -29,6 +29,8 @@ public class UI {
System.out.println("5 -> Kontoauszug drucken");
System.out.println("6 -> Überweisung beauftragen");
System.out.println("7 -> Saldo abfragen");
+ System.out.println("8: -> Filtering");
+ System.out.println("10: -> find max");
System.out.println("9 -> Beenden");
System.out.println();
@@ -48,7 +50,9 @@ public class UI {
case 5: kontoauszugDrucken(); break;
case 6: überweisungBeauftragen(); break;
case 7: saldoAbfragen(); break;
+ case 8: filtering(); break;
case 9: break mainloop;
+ case 10: findMax();
}
} catch (Exception e) {
@@ -162,5 +166,19 @@ public class UI {
long saldo = bs.saldoBestimmen(konto, anzahl);
System.out.printf("Der Saldo nach %d Kontobewegungen beträgt %.2f Euro.%n", anzahl, (saldo/100d));
}
+ private void filtering()
+ {
+ int input = Integer.parseInt(sc.nextLine());
+ String[] output = bs.filtering(input);
+ for(int i = 0;i