【发布时间】:2017-02-17 08:23:42
【问题描述】:
例如,我有一个很长的列表[1, 2, 3, ..., 10],还有一个很短的[1, 3, 6],那么我可以看出这个短的就是另一个的子序列。另一方面,列表[1 6 3] 并不是因为它违反了顺序约束。
下面是我针对这个问题的 java7 样式代码:
List<Integer> sequence = Arrays.asList(1, 3, 6);
List<Integer> global = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Iterator<Integer> iterGlobal = global.iterator();
boolean allMatch = true;
for(Integer itemSequence: sequence) {
boolean match = false;
while(iterGlobal.hasNext()) {
if(itemSequence.equals(iterGlobal.next())) {
match = true;
break;
}
}
if(!match) {
allMatch = false;
break;
}
}
System.out.println(allMatch); //=> true
而我的愿望是找到一个java8流样式来达到同样的效果。
【问题讨论】:
-
如果输入是
1, 2, 3, 4, 5, 6, 3,那么1, 3, 6和1, 6, 3可能有效? -
我猜答案是肯定的。
-
@Flown:是的,两者都是有效的。
标签: java functional-programming java-8 java-stream