例如,我有一個長列表[1, 2, 3, ..., 10]
,和一個簡短的[1, 3, 6]
,那麼我可以說短一個是另一個的子序列。另一方面,清單[1 6 3]
不是因爲它違背了訂單限制。如何判斷一個列表是否是另一個具有java8流的子序列?
下面是對這個問題我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
我想答案是肯定的。 – bartektartanus
@Fown:是的,兩者都有效。 – Run