【发布时间】:2018-06-05 03:38:18
【问题描述】:
我有一套以下物品
Set<String> formatLookup = new HashSet<>();
formatLookup.add("DHMdhm");
formatLookup.add("THMthm");
formatLookup.add("JHMjhm");
我正在传递一个字符串,如下所示
String filterVal = "THM";
现在我想检查过滤器值存在于集合的哪个索引中(过滤器值顺序可能会有所不同,如 THM、HTM、MHT 等),并且我想从集合中返回该项目。下面是这个的代码,它正在工作。
private static String getStoredFilter(String filterVal) {
String format = "DHMdhm";
boolean found = false;
Set<String> formatLookup = new HashSet<>();
formatLookup.add("DHMdhm");
formatLookup.add("THMthm");
formatLookup.add("JHMjhm");
Iterator<String> setIterator = formatLookup.iterator();
while (setIterator.hasNext()) {
String fmt = setIterator.next();
for (int j = 0; j < filterVal.length(); j++) {
if (!(fmt).contains(String.valueOf(filterVal.charAt(j)))) {
found = false;
break;
} else {
found = true;
}
}
if (found) {
return fmt;
}
}
return null;
}
我想使用 Java8 功能。我是 Java8 的新手,我尝试使用流和 foreach。但是,由于foreach 无法返回值,所以我不确定如何完成。
你能帮我解决这个问题吗?
【问题讨论】:
-
Set的索引...
标签: java lambda foreach java-8 java-stream