如何从java中的URL的arraylist获取主机站点列表和该主机的每个实例?

时间:2013-04-24 15:08:30

标签: java url arraylist

我有一个ArrayList,其中包含URL作为字符串。我想找到不同主机站点的列表及其出现的次数。 例如,如果在我的列表中有5个谷歌链接我想要全部计算。我开始使用for循环迭代列表中的每个URL:

for(int i = 0;i<list.size(); i++){

    //for every url at i identify the host site and put in hashmap where the key is the  
    //host site and the variable is the number of URL's from that host
    }

如何从网址字符串中指定网址的主机(例如google.com)。我不知道如何编写该部分。

4 个答案:

答案 0 :(得分:3)

类似的东西(未经测试,但原则是有效的)?

    Map<String, Integer> map = new HashMap<String, Integer>();
    for(int i = 0;i<list.size(); i++)
    {
        URL url = new URL(list[i]);
        if (map.containsKey(url.getHost()))
        {
            map.put(url.getHost(), map.get(url.getHost()) + 1);
        }
        else
        {
            map.put(url.getHost(), 1);
        }
    }

如果要打印哈希映射:

    for (Map.Entry entry : map.entrySet()) 
    {
        System.out.println(entry.getKey() + " " + entry.getValue());
    }

答案 1 :(得分:1)

我建议您使用URL.getHost()来检索主机名,并使用Map<String,Integer>来存储您看到的每个主机的数量。

答案 2 :(得分:1)

创建URL对象(它有一个收到String的构造函数)并使用它的getHost()方法

答案 3 :(得分:0)

如果您查看了javadocs的URL,您会看到有一个getHost方法:http://docs.oracle.com/javase/6/docs/api/java/net/URL.html