Hi Leute,
habe wieder mal ein kleines Problem mit meiner HÜ.
Ich bekomm bei der Ausgabe nur immer einen Wert und zwar sortiert er mir das Stockwerk im Ausgaben File.
Jedoch möchte ich Sortierung der Höhenmeter + Stockwerk haben untereinander wie bei der Ausgabe auf der Console.
Warum gibt er mir bei der Console es richtig, nur beim file schreibt macht er nur das Sortieren von den Stockwerken.
Hoffe ihr könnt mir helfen
vielen dank
habe wieder mal ein kleines Problem mit meiner HÜ.
Ich bekomm bei der Ausgabe nur immer einen Wert und zwar sortiert er mir das Stockwerk im Ausgaben File.
Jedoch möchte ich Sortierung der Höhenmeter + Stockwerk haben untereinander wie bei der Ausgabe auf der Console.
Warum gibt er mir bei der Console es richtig, nur beim file schreibt macht er nur das Sortieren von den Stockwerken.
Hoffe ihr könnt mir helfen
vielen dank
Java:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Wolkenkratzer {
public static void main (String [] args) {
// Wolkenkratzer füllen
ArrayList<Hochhaus> info = new ArrayList<Hochhaus>();
info.add(new Hochhaus("Millenium Tower" , "Wien", "202m", "050 Stock"));
info.add(new Hochhaus("IZD Tower", "Wien", "130m", "037 Stock"));
info.add(new Hochhaus("Sears Tower", "Wien", "527m", "110 Stock"));
info.add(new Hochhaus("Empire State Building", "New York", "448m", "102 Stock"));
info.add(new Hochhaus("Burj Dubai", "Dubai", "818m", "189 Stock"));
info.add(new Hochhaus("Taipei", "Taipeh", "508m", "101 Stock"));
Collections.sort(info, new MeterSorter());
System.out.println();
System.out.println("Buildings nach Höhenmeter sortiert:");
for (Hochhaus ho: info)//typ und typname
ho.drucken();
Collections.sort(info, new StockSorter());
System.out.println();
System.out.println("Buildings nach Stockwerken sortiert:");
for (Hochhaus ho: info)
ho.drucken();
File f = new File("C:\\programmieren\\Ausgabe\\Uebung9.txt");
try {
System.out.println("PrintWriter anlegen");
PrintWriter pw = new PrintWriter(new FileWriter(f));
for (Hochhaus ho: info)
ho.write(pw);
pw.flush();
pw.close();
}
catch(IOException e) {
System.out.println(e.getMessage());
}
finally {
System.out.println("PrintWriter abgeschlossen");
}
}
}
class Hochhaus{ //class um ein neues Hochhaus anzulegen
protected String name;
protected String ort;
protected String meter;
protected String stock;
public Hochhaus(String n, String o,String m, String s){
name = n;
ort = o;
meter = m;
stock = s;
}
public void write(PrintWriter pw) {
pw.println(name + "|" + ort + "|" + meter + "|" + stock + "\t" );
}
public void drucken() {
System.out.print(name + "|" + ort + "|" + meter + "|" + stock + "\t");
System.out.println();
}
public String getMeterSorter(){return meter;}
public String getStockSorter(){return stock;}
}
class MeterSorter implements Comparator<Hochhaus> {
public int compare(Hochhaus eins, Hochhaus zwei){ return eins.getMeterSorter().compareTo(zwei.getMeterSorter()) * -1;
}
}
class StockSorter implements Comparator<Hochhaus> {
public int compare(Hochhaus eins, Hochhaus zwei){ return eins.getStockSorter().compareTo(zwei.getStockSorter()) * 1;
}
}