可以通过哈希表实现高效的集合操作。
接口
一个集合对象可以包含了以下接口:
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
从输出结果中可以看出,一些非法网站被过滤了。