import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 程式資訊摘要:分別用Lambda及傳統for loop 寫出 data 中不包含 comparedData 的元素
* 類別名稱 :TestLambda.java
*/
public class TestLambda {
public static void main(String[] args) {
List<String> data = Arrays.asList("apple", "ball", "cat");
List<String> comparedData = Arrays.asList("ball", "cat");
// lambda
data = data.stream().filter(
d -> !comparedData.stream().filter(
c -> d.contains(c)).findAny().isPresent())
.collect(Collectors.toList());
// for loop
List<String> results = new ArrayList();
for (String d : data) {
boolean found = false;
for (String c : comparedData) {
if (d.contains(c)) {
found = true;
break;
}
}
if (!found) {
results.add(d);
}
}
data.forEach(d -> System.out.println(d));
results.forEach(d -> System.out.println(d));
}
}
2016年1月25日 星期一
分別用Lambda 和傳統for loop 找出List 中不包含另一個List 的元素
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言