Merge pull request '42' (#13) from fix/all into master

Reviewed-on: #13
This commit is contained in:
Malte Schulze Hobeling 2022-12-09 14:00:38 +01:00
commit 3f42a3aca5
4 changed files with 47 additions and 29 deletions

View File

@ -7,23 +7,29 @@ public class EinkommenInfo {
GebietsDatei datei = new GebietsDatei("Einkommen.csv");
List<Gebiet> gebiet = datei.getGebiete();
GebietsListe gebietsListe = new GebietsListe(gebiet);
System.out.println(gebiet.size() + " Gebiete wurden eingelesen.");
System.out.println(gebietsListe.getAnzahlUnvollstaendig() + " davon haben unvollständige Angaben.");
System.out.println();
System.out.println(gebietsListe.getAnzahlGesamt() + " Gebiete wurden eingelesen.");
System.out.println(gebietsListe.getAnzahlUnvollstaendig() + " davon haben unvollständige Angaben.\n");
System.out.println("Gebiet mit dem geringsten Durchschnittseinkommen:");
System.out.println(gebietsListe.getGebietMinDurchschnittEinkommen());
System.out.println("Gebiet mit der größten Einwohernzahl:");
System.out.println(gebietsListe.getGebietMaxEinwohner());
Scanner sc = new Scanner(System.in);
while(true){
while (true) {
System.out.print("Name des Gebietes: ");
String input = sc.nextLine();
if(input.isEmpty()){
if (input.isEmpty()) {
break;
}
List<Gebiet> foundAreas = gebietsListe.getGebietNachNamen(input);
for (Gebiet area : foundAreas) {
System.out.println(area);
}
System.out.println(foundAreas.size() + " Gebiete wurden gefunden.");
System.out.println(foundAreas.size() + " Gebiete wurden gefunden.\n");
}
sc.close();
}
}

View File

@ -1,4 +1,4 @@
public class Gebiet implements GebietInterface{
public class Gebiet implements GebietInterface {
private int jahr;
private int schlüssel;
private String name;
@ -30,7 +30,7 @@ public class Gebiet implements GebietInterface{
@Override
public long getGesamtEinkommen() {
if(gesamtEinkommen <= 0){
if (gesamtEinkommen <= 0) {
return -1;
}
return gesamtEinkommen;
@ -38,7 +38,7 @@ public class Gebiet implements GebietInterface{
@Override
public int getDurchschnittsEinkommen() {
if(durchschnittsEinkommen <= 0){
if (durchschnittsEinkommen <= 0) {
return -1;
}
return durchschnittsEinkommen;
@ -46,11 +46,15 @@ public class Gebiet implements GebietInterface{
@Override
public int getAnzahlEinwohner() {
return (int)(gesamtEinkommen / durchschnittsEinkommen);
return (int) (gesamtEinkommen * 1000 / durchschnittsEinkommen);
}
@Override
public String toString() {
return getName() + "\n" + getAnzahlEinwohner() + " Einwohner\n" + getDurchschnittsEinkommen() + " Euro / Einwohner\n";
if (getDurchschnittsEinkommen() <= 1 || getGesamtEinkommen() <= 1) {
return getName() + "\n" + "Einwohnerzahl unbekannt\n" + "Durchschnittseinkommen unbekannt\n";
}
return getName() + "\n" + getAnzahlEinwohner() + " Einwohner\n" + getDurchschnittsEinkommen()
+ " Euro / Einwohner\n";
}
}

View File

@ -15,7 +15,9 @@ public class GebietsDatei {
try {
Files.readAllLines(Paths.get(dateiName)).forEach(line -> {
String[] parts = line.split(";");
gebiete.add(new Gebiet(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), parts[2], (parts[3].equals("-")) ? 0 : Long.parseLong(parts[3]), (parts[4].equals("-")) ? 0 : Integer.parseInt(parts[4])));
gebiete.add(new Gebiet(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), parts[2],
(parts[3].equals("-")) ? -1 : Long.parseLong(parts[3]),
(parts[4].equals("-")) ? -1 : Integer.parseInt(parts[4])));
});
} catch (Exception e) {
e.printStackTrace();

View File

@ -2,33 +2,39 @@ import java.util.ArrayList;
import java.util.List;
public class GebietsListe {
private List<GebietMock> gebietListe = new ArrayList<>();
private List<Gebiet> gebiete = new ArrayList<>();
public GebietsListe(List<Gebiet> gebiete){
this.gebietListe = gebietListe;
public GebietsListe(List<Gebiet> gebiete) {
this.gebiete = gebiete;
}
public Gebiet getGebietMinDurchschnittEinkommen(){
return null;
public Gebiet getGebietMinDurchschnittEinkommen() {
return gebiete.stream()
.filter(g -> g.getDurchschnittsEinkommen() != -1)
.min((g1, g2) -> g1.getDurchschnittsEinkommen() - g2.getDurchschnittsEinkommen())
.get();
}
public Gebiet getGebietMaxEinwohner(){
return null;
public Gebiet getGebietMaxEinwohner() {
return gebiete.stream()
.filter(g -> g.getDurchschnittsEinkommen() != -1)
.max((g1, g2) -> g1.getAnzahlEinwohner() - g2.getAnzahlEinwohner())
.get();
}
public int getAnzahlGesamt(){
return 0;
public int getAnzahlGesamt() {
return gebiete.size();
}
public int getAnzahlUnvollstaendig(){
return 0;
public int getAnzahlUnvollstaendig() {
return (int) gebiete.stream()
.filter(g -> g.getDurchschnittsEinkommen() == -1 || g.getGesamtEinkommen() == -1)
.count();
}
public List<Gebiet> getGebietNachNamen(String namensanfang){
return null;
public List<Gebiet> getGebietNachNamen(String namensanfang) {
return gebiete.stream()
.filter(g -> g.getName().startsWith(namensanfang))
.toList();
}
}