如何在java中实现黑名单

时间:2014-04-04 09:40:00

标签: java

我想实现一个方法isInBlackList(String element),如果在黑名单中建立element,则返回true。我有以下代码:

public boolean isInBlackList(String element) {
        Set<String> blackList = new HashSet<String>();
        blackList.add("element1");
        blackList.add("element2");
        ...
        .....
        blackList.add("element20");

        return blackList.contains(element);
    }

困扰我的是我必须写add()方法20次。有什么好主意吗?它不必与Set一起实现。

5 个答案:

答案 0 :(得分:2)

我能想到的最简单的方法如下:

final List<String> blackList = Arrays.asList("element1", "element2", "element3");

正如你所看到的那样,那......真的极简主义,而且仍然有效:)

答案 1 :(得分:1)

您可以尝试这样:

Set<String> blackList = new HashSet<String>(Arrays.asList("element1", "element2", "element3"));

答案 2 :(得分:1)

您可以将blacklist作为班级的字段,并使用以下内容进行初始化:

Set<String> blackList = new HashSet<String>(Arrays.asList("element1", ...));

答案 3 :(得分:1)

试试这种方式,

Set<String> blackList = new HashSet<String>();

    public static void main(String[] args)
    {
        Test12 ss = new Test12();
        ss.populateBlackList();  // if the blacklist is fixed means you can call this in constructor 
        System.out.println(ss.isInBlackList("element1"));
    }

    private void populateBlackList() // make it as an seperate method dont populate at all time
    {
        for (int i = 1; i <= 20; i++)
        {
            blackList.add("element" + i);
        }
    }

    public boolean isInBlackList(String element) //finding the blackList
    {
        return blackList.contains(element);
    }

答案 4 :(得分:0)

  1. 将blackList声明为成员变量并在构造函数中初始化它。

  2. 只需使用for循环添加元素

    for(int i = 1; i&lt; = 20; i ++){

    string s = "element"+i;
        blackList.add(s);
    }