Új hozzászólás Aktív témák

  • szombatitomi

    senior tag

    Sziasztok!

    Tudnátok ebben segíteni?

    Ott van a probléma, hogy ha a map-ben egy kulcshoz olyan értékek tartoznak, ahol több utcanév megegyezik, a házszámoknál nem rendezi jól a TreeSet az értékeket.

    Például a narancs-hoz megkapjuk, hogy Vag utca 9. és Vag utca 10., de ezt fordított sorrendben fogja kiírni, mert az 1 kisebb a 9-nél. Hogy lehetne itt megoldani, hogy házszám szerint is jól működjön?

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.*;

    public class Test {
    public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String sor;
    String cim;
    String[] token;
    String[] ajandekok;
    Map<String, Set<String>> map = new TreeMap<>();
    while ((sor = br.readLine()) != null) {
    token = sor.split(";");
    cim = token[1].concat(" ").concat(token[2]).concat(".");
    ajandekok = token[3].split(",");

    for (int i = 0; i < ajandekok.length; i++) {
    if (!map.containsKey(ajandekok[i]))
    map.put(ajandekok[i], new TreeSet<String>());

    map.get(ajandekok[i]).add(cim);
    }
    }

    List<Map.Entry<String, Set<String>>> list = new ArrayList<>();
    list.addAll(map.entrySet());

    for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i).getKey() + ": ");
    System.out.println(list.get(i).getValue().toString().replace("]", "")
    .replace("[", "").replace(", ", "\n"));
    }
    }
    }

    /*tesztadat:
    Petike;Vag utca;9;dio,alma,mogyoro
    Petracska;Vag utca;10;banan,narancs
    Pistike;Vag utca;9;alma,mogyoro,narancs
    Lilianna;Szotyori utca;30;mogyoro,banan
    */

Új hozzászólás Aktív témák

Hirdetés