Compare commits

5 Commits

Author SHA1 Message Date
Johannes Kantz
e1a7f69bc7 fix: everything 2022-12-09 11:21:35 +01:00
90a323ce01 Merge pull request 'fix/gebietsdatei' (#11) from fix/gebietsdatei into master
Reviewed-on: #11
2022-12-06 14:57:54 +01:00
Johannes Kantz
81b4cbeb7e fix: remove print 2022-12-06 14:38:30 +01:00
Johannes Kantz
aab1fe68d7 fix: formatting 2022-12-06 14:38:03 +01:00
Johannes Kantz
8382a47d7e fix: meine dummen fehler (: 2022-12-06 14:37:34 +01:00
6 changed files with 47 additions and 41 deletions

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@@ -1,5 +1,3 @@
Jahr;Schlüssel;Region;verfügbares Einkommen der privaten Haushalte;verfüg. Einkommen der priv. Haushalte je Einwohner
;;;Tsd. EUR;EUR
2016;01001;Flensburg, Kreisfreie Stadt;1602046;18481
2016;01002;Kiel, Landeshauptstadt, Kreisfreie Stadt;4643584;18810
2016;01003;Lübeck, Hansestadt, Kreisfreie Stadt;4237638;19575
1 Jahr 2016 Schlüssel 01001 Region Flensburg, Kreisfreie Stadt verfügbares Einkommen der privaten Haushalte 1602046 verfüg. Einkommen der priv. Haushalte je Einwohner 18481
Jahr Schlüssel Region verfügbares Einkommen der privaten Haushalte verfüg. Einkommen der priv. Haushalte je Einwohner
Tsd. EUR EUR
1 2016 01001 01001 Flensburg, Kreisfreie Stadt Flensburg, Kreisfreie Stadt 1602046 1602046 18481 18481
2 2016 01002 01002 Kiel, Landeshauptstadt, Kreisfreie Stadt Kiel, Landeshauptstadt, Kreisfreie Stadt 4643584 4643584 18810 18810
3 2016 01003 01003 Lübeck, Hansestadt, Kreisfreie Stadt Lübeck, Hansestadt, Kreisfreie Stadt 4237638 4237638 19575 19575

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], Long.parseLong(parts[3]), 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();
}
}