Hallo zusammen,
ich möchte, dass die Methode VW.ausgabe(list); mir die Autos sortiert.
Leider bekomme ich überhaupt nichts zurück.
Liegt es daran, dass die List<Auto> list zweimal deklariert wird?
Wie sonst könnte man das lösen?
Vielen Dank im Voraus!
ich möchte, dass die Methode VW.ausgabe(list); mir die Autos sortiert.
Leider bekomme ich überhaupt nichts zurück.
Liegt es daran, dass die List<Auto> list zweimal deklariert wird?
Wie sonst könnte man das lösen?
Vielen Dank im Voraus!
Code:
package Mobile2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Auto> list = new ArrayList<Auto>();
VW.addAuto(VW.erstelleAuto(true, "VW", 4.000, 14.000, "gelb", 2008));
VW.addAuto(VW.erstelleAuto(false, "VW", 5.000, 4.000, "schwarz", 2008));
VW.addAuto(VW.erstelleAuto(true, "VW", 9.000, 45.000, "weiss", 2007));
VW.addAuto(VW.erstelleAuto(false, "VW", 18.000, 4.000, "lila", 2010));
VW.addAuto(VW.erstelleAuto(false, "VW", 11.000, 6.000, "orange", 2012));
VW.addAuto(VW.erstelleAuto(false, "VW", 34.000, 8.000, "blau", 2013));
VW.addAuto(VW.erstelleAuto(true, "VW", 11.000, 14.000, "gelb", 2014));
VW.addAuto(VW.erstelleAuto(true, "VW", 23.000, 14.000, "gelb", 2015));
VW.addAuto(VW.erstelleAuto(true, "VW", 10.000, 14.000, "black", 2008));
VW.addAuto(VW.erstelleAuto(true, "VW", 19.000, 14.000, "grün", 2017));
VW.addAuto(VW.erstelleAuto(true, "VW", 7.000, 14.000, "rosa", 2019));
Collections.sort(list, new sortErstZulassung());
VW.ausgabe(list);
VW.sucheAuto();
}
static class sortErstZulassung implements Comparator<Auto> {
@Override
public int compare(Auto o1, Auto o2) {
return Integer.valueOf(o1.getErstzulassung()).compareTo(o2.getErstzulassung());
}
}
}
Code:
package Mobile2;
public class Auto {
private boolean neuwagen;
private String marke;
private double preis;
private double kilometerstand;
private String farbe;
private int erstzulassung;
public Auto(boolean neuwagen, String marke, double preis, double kilometerstand, String farbe, int erstzulassung) {
super();
this.neuwagen = neuwagen;
this.marke = marke;
this.preis = preis;
this.kilometerstand = kilometerstand;
this.farbe = farbe;
this.erstzulassung = erstzulassung;
}
public boolean isNeuwagen() {
return neuwagen;
}
public void setNeuwagen(boolean neuwagen) {
this.neuwagen = neuwagen;
}
public String getMarke() {
return marke;
}
public void setMarke(String marke) {
this.marke = marke;
}
public double getPreis() {
return preis;
}
public void setPreis(double preis) {
this.preis = preis;
}
public double getKilometerstand() {
return kilometerstand;
}
public void setKilometerstand(double kilometerstand) {
this.kilometerstand = kilometerstand;
}
public String getFarbe() {
return farbe;
}
public void setFarbe(String farbe) {
this.farbe = farbe;
}
public int getErstzulassung() {
return erstzulassung;
}
public void setErstzulassung(int erstzulassung) {
this.erstzulassung = erstzulassung;
}
}
Code:
package Mobile2;
import java.text.DecimalFormat;
import java.util.*;
public class VW extends Auto {
static List<Auto> list = new ArrayList<Auto>();
public static int count;
public static int countFarbe;
public static int countPreis;
public static int countErstzulassung;
public VW(boolean neuwagen, String marke, double preis, double kilometerstand, String farbe, int erstzulassung) {
super(neuwagen, marke, preis, kilometerstand, farbe, erstzulassung);
}
public static boolean addAuto(VW a) {
list.add(a);
return true;
}
public static VW erstelleAuto(boolean neuwagen, String marke, double preis, double kilometerstand, String farbe,
int erstzulassung) {
return new VW(neuwagen, marke, preis, kilometerstand, farbe, erstzulassung);
}
public static void ausgabe(List<Auto> list) {
for (Auto auto : list) {
System.out.println(auto);
}
}
public static boolean sucheAuto() {
Scanner scanner = new Scanner(System.in);
System.out.println("Neuwagen oder Gebrauchswagen?");
String wagenArt = scanner.nextLine();
// ANFANG NEUWAGEN
if (wagenArt.equalsIgnoreCase("Neuwagen")) {
for (Auto auto : list) {
if (auto.isNeuwagen()) {
count++;
System.out.println(auto);
}
}
System.out.println("So viele Autos entsprechen deinen Kriterien: " + count);
Scanner scanner2 = new Scanner(System.in);
System.out.println("Wonach die Suche eingrenzen? Preis, Farbe, Erstzulassung?");
String eingabe = scanner2.nextLine();
if (eingabe.equalsIgnoreCase("Farbe")) {
Scanner scanner4 = new Scanner(System.in);
System.out.println("Welche Farbe?");
String eingabeFarbe = scanner4.nextLine();
for (Auto auto2 : list) {
if (eingabeFarbe.equalsIgnoreCase(auto2.getFarbe())) {
countFarbe++;
System.out.println(auto2);
}
}
System.out.println("So viele Autos entsprechen deinen Kriteien: " + countFarbe);
} else if (eingabe.equalsIgnoreCase("Preis")) {
Scanner scanner5 = new Scanner(System.in);
System.out.println("Bis 10.000 oder bis 20.000?");
double eingabePreis = scanner5.nextDouble();
for (Auto auto3 : list) {
if (eingabePreis == 10 && auto3.getPreis() < 10.000 && auto3.isNeuwagen()) {
countPreis++;
System.out.println(auto3);
} else if (eingabePreis == 20 && auto3.getPreis() < 10.000 && auto3.isNeuwagen()) {
countPreis++;
System.out.println(auto3);
}
}
System.out.println("So viele Autos entsprechen deinen Kriteien: " + countPreis);
} else if (eingabe.equalsIgnoreCase("Erstzulassung")) {
Scanner scanner6 = new Scanner(System.in);
System.out.println("bis 2010, 2015 oder 2020?");
int eingabeErstzulassung = scanner6.nextInt();
switch (eingabeErstzulassung) {
case 2010:
for (Auto auto4 : list) {
if (auto4.getErstzulassung() < 2010 && auto4.isNeuwagen()) {
countErstzulassung++;
System.out.println(auto4);
}
}
break;
case 2015:
for (Auto auto4 : list) {
if (auto4.getErstzulassung() < 2015 && auto4.isNeuwagen()) {
countErstzulassung++;
System.out.println(auto4);
}
}
break;
case 2020:
for (Auto auto4 : list) {
if (auto4.getErstzulassung() < 2020 && auto4.isNeuwagen()) {
countErstzulassung++;
System.out.println(auto4);
}
}
break;
default:
System.out.println("Falsches Jahr");
}
System.out.println("So viele Autos entsprechen deinen Kriteien: " + countErstzulassung);
}
// ENDE NEUWAGEN
// ANFANG GEBRAUCHSWAGEN
} else if (wagenArt.equalsIgnoreCase("Gebrauchswagen")) {
for (Auto auto : list) {
if ((!auto.isNeuwagen())) {
count++;
System.out.println(auto);
}
}
System.out.println("So viele Autos entsprechen deinen Kriterien: " + count);
} // ENDE WAGEN
return true;
}
@Override
public String toString() {
DecimalFormat decimalFormat = new DecimalFormat("#.000");
String string;
if (isNeuwagen()) {
string = "Neuwagen";
} else {
string = "Gebrauchswagen";
}
return "" + getFarbe() + " " + "Preis" + " " + decimalFormat.format(getPreis()) + " " + "Kilometerstand" + " "
+ getKilometerstand() + " " + string + " " + "Erstzulassung: " + " " + getErstzulassung();
}
}