No usar la interfaz comparable de la manera correcta

He estado buscando una respuesta a esto, pero parece que mi problema es más específico que otros.

Entonces tengo dos clases y una interfaz. La interfaz se llama "Comparable" y sé que la interfaz tiene su propio método, pero lo veremos en un segundo.

Lo que tengo son las clases llamadas "cityMain", "City2" y la interfaz "Comparable"

Lo que mi programa está haciendo en este momento es que se lee desde un archivo txt con algo como:

75242; Uppsala 90325; Umeå 96133; Boden 23642; Höllviken 35243; Växjö 51000; Jönköping 72211; Västerås, etc.

El punto y coma se escapa y los enteros y las cuerdas se dividen en dos. Los números son códigos postales y bueno, lo que está al lado es solo un nombre de algunos estados en Suecia. Después de leerlo desde "mainCity", en realidad lo estoy ordenando para que el código postal superior con su nombre quede en la parte superior, por lo tanto, desde el menor número hasta el más grande.

Luego, cuando llega a leerlo, pasa a la clase "City2" y desde allí solo pasa por todos los métodos, un código postal y un estado a la vez.

SIN EMBARGO: Atm en realidad estoy llamando todo desde mi main y NO desde mi interfaz.

Debería ir así "mainCity" -> "Comparable" -> "City2". ¡El programa funciona como está pero quiero que sea correcto!

He intentado pasar de "Comparable" y luego llamarlo así, pero no funcionó ni me dio un error. Nota, una vez más: Comparable sí tiene su propio método, pero no lo he usado debido al hecho de que no sabría cómo aplicarlo como parece en este momento.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;


public class cityMain {

private static BufferedReader r;

public static void main(String[] args) {
    int Z = 0;
    String C = null;
    try {
        ArrayList<City2> City = new ArrayList<City2>();

        FileReader file = new FileReader("C:\\Users\\me\\Desktop\\BB.dat");
        r = new BufferedReader(file);
        String currLine;
        while ((currLine = r.readLine()) != null) {

            if (currLine.trim().length() > 0) {
                String[] split = currLine.split(";");
                Z = (Integer.parseInt(split[0]));
                C = (split[1]);
                City.add(new City2(Z, C));
            }
        }
        Collections.sort(City, (c1, c2) -> c1.getZipCode() - c2.getZipCode());

        for (int i = 0; i < City.size(); i++) {
            System.out.println(City.get(i).getZipCode() + " " + City.get(i).getCityName());

        }

    } catch (IOException e) {
        System.out.println("Erorr : " + e);
    }

}

}


HERE IS A DIFFERENT CLASS:

public class City2 implements Comparable {

private int zipCode;
private String cityName;

public City2(int zipCode, String cityName) {
    this.zipCode = zipCode;
    this.cityName = cityName;
}

public int getZipCode() {
    return zipCode;
}

public String getCityName() {
    return cityName;
}

public void addAndPrint() {

}

}

HERE IS THE INTERFACE:

public interface Comparable {

public int getZipCode();

public String getCityName();

public void addAndPrint(); 

}

¡Lo que debería obtener, que ya obtengo pero no de la forma en que se supone que debo hacerlo!

23642 Höllviken 35243 Växjö 51000 Jönköping 72211 Västerås 75242 Uppsala 90325 Umeå 96133 Boden

¡Cualquier cosa sería muy apreciada en este momento!

Respuesta 1

Estoy creando un juego y quería usar el motor de física JBullet. He buscado los Javadocs pero no he encontrado nada. ¿Cómo defino una forma personalizada para usar con JBullet? Estaba buscando ...

Tengo el siguiente archivo .travis.yml en mi proyecto, configurado para compilar siempre y para implementar solo cuando la compilación se desencadena por una etiqueta de GitHub que coincide con una determinada cadena de versión: idioma: java sudo: ...

Tengo una clase padre con algún método doIt (...) y varias clases internas. He cambiado la implementación de este método. La firma del método no se modificó. La lógica de esa clase es demasiado complicada y yo ...

¿Las cookies se mantienen persistentes cuando usamos esto? ¿Las cookies siguen estando disponibles incluso después de reiniciar el teléfono? Me refiero a este enlace: http: //developer.android.com/reference/android/webkit / ...