簡體   English   中英

從Java中的HashMap獲取元素?

[英]Get elements from HashMap in Java?

我目前有以下代碼,該代碼從網頁獲取表格,並將元素放入HashMap(我認為)。

    Document doc = Jsoup.connect(
            "http://www.sportinglife.com/greyhounds/abc-guide").get();

    Element tableHeader = doc.select("tbody").first();
    Map<String, String> data = new HashMap<>();
    for (Element element : tableHeader.children()) {
        // Here you can do something with each element
        if (element.text().indexOf("Pelaw Grange") > 0
                || element.text().indexOf("Shawfield") > 0
                || element.text().indexOf("Shelbourne Park") > 0
                || element.text().indexOf("Harolds Cross") > 0) {
            // do nothing
        } else {

            String dog = element.select("td:eq(0)").text();
            String race = element.select("td:eq(1)").text();
            data.put(dog, race);

        }
    }
    analyseRunners(data);
}

這似乎行得通,現在我需要它運行另一個方法“ analyseRunners”,在該方法中,它需要遍歷每條狗,並使用該“狗”名稱來訪問另一個有另一個表的網頁。 到目前為止,這就是我所擁有的...

String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + dog;
    Document doc1 = Jsoup.connect(dogPage).get();

    int firsts = 0, seconds = 0, thirds = 0;


    Element tblHeader = doc1.select("tbody").first();
    for (Element element1 : tblHeader.children()){
        String position = element1.select("td:eq(4)").text();

        if (position.equals("1st")){
            firsts++;
        } else if (position.equals("2nd")){
            seconds++;
        } else if (position.equals("3rd")){
            thirds++;
        } else {
            //do nothing
        }
    }
    System.out.println("Firsts: " + firsts);
    System.out.println("Seconds: " + seconds);
    System.out.println("Thirds: " + thirds);

如您所見,我正在嘗試使用上述第一種方法中的“狗”導航到jSoup中的網頁...這不起作用,因為它說“狗”無法解析。 我該如何從HashMap中獲取狗的名字,並循環遍歷每只狗以計算出它的第1個,第2個和第3個? (此頁的第五列: http : //www.gbgb.org.uk/raceCard.aspx?dogName=A%20Real%20Legend

在循環中使用狗名在數據映射上:

for(String dog : data.keySet())
{
    // use dog as required
}

首先,迭代地圖的密鑰列表並獲取可用的狗。 然后在其中處理您的邏輯。

 for (String dog: data.keySet()) { String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + dog; Document doc1 = Jsoup.connect(dogPage).get(); .................... } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM