算法6-5:哈希表应用之集合

能够通过哈希表实现高效的集合操作。


接口


一个集合对象能够包括了下面接口:

public interface Set<Key extends Comparable<Key>> {
    public void add(Key key);
    public boolean contains(Key key);
    public void remove(Key key);
    public int size();
    public Iterator<Key> iterator();
}


黑名单过滤应用


代码

import java.util.Set;
import java.util.LinkedHashSet;
 
public class BlackList {
    public static void main(String[] argv) {
        String[] urls = new String[]{"baidu.com", "abc.com", "porn.com", "youtube.com", "facebook.com"};
        String[] blacklist = new String[]{"porn.com", "youtube.com", "facebook.com"};
 
        // 建立黑名单集合
        Set<String> black = new LinkedHashSet<String>();
        for(String b : blacklist) {
            black.add(b);
        }
 
        // 过滤非法站点
        for(String url : urls) {
            if(!black.contains(url)) {
                System.out.println(url);
            }
        }
    }
}


输出结果:

baidu.com
abc.com
porn.com is blocked
youtube.com is blocked
facebook.com is blocked


从输出结果中能够看出,一些非法站点被过滤了。


posted @ 2014-09-15 22:30  mengfanrong  阅读(206)  评论(0编辑  收藏  举报