Scanner-olioilla voidaan lukea monia erilaisia tietovirtoja. Olemme tähän asti lukeneet lähinnä käyttäjien syötteitä System.in-tietovirrasta, mutta Scanneria voidaan käyttää myös esimerkiksi tiedostojen ja verkkolähteiden lukemiseen. Tässä tehtävässä sinun tulee lukea verkosta kaupunkien nimet ja väkiluvut ja tulostaa sellaisten kaupunkien nimet, joiden väkiluku on yli 10 000 asukasta. Käytä pohjana KaupungitVerkosta.java-tiedostoa. KaupungitVerkosta-luokan logiikka on toteutettu siten, että kaupungin nimi tulostetaan heti kyseistä riviä läpikäytäessä. Tässä tehtävässä sinun tulee muuttaa toimintalogiikkaa niin, että nimet tulostetaan aakkosjärjestyksessä. Aakkosjärjestyksen toteuttamiseksi sinun tuleekin laittaa yli 10 000 asukkaan kaupunkien nimet talteen listalle kunnes kaikki kaupungit on käyty läpi. Sen jälkeen järjestä lista Collections.sort-metodin avulla, ja lopuksi tulosta listan alkiot yksi kerrallaan. Pohja: https://github.com/haagahelia/swd4tn032-TH_JJ/blob/master/src/viikko3/listat/th/KaupungitVerkosta.java Collections.sort: https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#sort-java.util.List- ``` Example output: Akaa Alavus Espoo Forssa Hamina Heinola Helsinki Huittinen Hyvinkää Hämeenlinna Iisalmi Imatra Joensuu Jyväskylä Jämsä Järvenpää Kaarina Kajaani Kalajoki Kangasala Kankaanpää Kauhajoki Kauhava Kemi Kerava Kitee Kokkola Kotka Kouvola Kuopio Kurikka Kuusamo Lahti Lappeenranta Lapua Lieksa Lohja Loimaa Loviisa Maarianhamina Mikkeli Naantali Nivala Nokia Orimattila Oulu Paimio Parainen Pieksämäki Pietarsaari Pori Porvoo Raahe Raasepori Raisio Rauma Riihimäki Rovaniemi Salo Sastamala Savonlinna Seinäjoki Tampere Tornio Turku Ulvila Uusikaupunki Vaasa Valkeakoski Vantaa Varkaus Ylivieska Ylöjärvi Äänekoski ``` -------------------- **KaupungitVerkosta.java** ``` // Ref: https://github.com/haagahelia/swd4tn032-TH_JJ/blob/master/src/viikko3/listat/th/KaupungitVerkosta.java import java.net.URL; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class KaupungitVerkosta { // Define Exception for unreachable URLs public static void main(String[] args) throws Exception { URL csvFile = new URL("https://git.io/Jv3N3"); ArrayList cityList = new ArrayList(); int i; Scanner syote = new Scanner(csvFile.openStream(), "UTF-8"); // Exclude header line String firstLine = syote.nextLine(); while (syote.hasNextLine()) { String line = syote.nextLine(); // CSV delimiter is character , int lineIndex = line.indexOf(","); String city = line.substring(0, lineIndex); int population = Integer.parseInt(line.substring(lineIndex + 1)); if (population >= 10000) { cityList.add(city); } } syote.close(); Collections.sort(cityList); for (i= 0; i < cityList.size(); i++) { System.out.println(cityList.get(i)); } } } ```