我想实现一个方法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
一起实现。
答案 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)
将blackList声明为成员变量并在构造函数中初始化它。
只需使用for循环添加元素
for(int i = 1; i&lt; = 20; i ++){
string s = "element"+i;
blackList.add(s);
}