@Test public void whenFilterWithIterables_thenFiltered() { List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Iterable<String> result = Iterables.filter(names, Predicates.containsPattern("a")); assertThat(result, containsInAnyOrder("Jane", "Adam")); } @Test public void whenFilterWithCollections2_thenFiltered() { List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Collection<String> result = Collections2.filter(names, Predicates.containsPattern("a")); assertEquals(2, result.size()); assertThat(result, containsInAnyOrder("Jane", "Adam")); result.add("anna"); assertEquals(5, names.size()); } @Test public void whenFilterCollectionWithCustomPredicate_thenFiltered() { Predicate<String> predicate = new Predicate<String>() { @Override public boolean apply(String input) { return input.startsWith("A") || input.startsWith("J"); } }; List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Collection<String> result = Collections2.filter(names, predicate); assertEquals(3, result.size()); assertThat(result, containsInAnyOrder("John", "Jane", "Adam")); } @Test public void whenTransformWithIterables_thenTransformed() { Function<String, Integer> function = new Function<String, Integer>() { @Override public Integer apply(String input) { return input.length(); } }; List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Iterable<Integer> result = Iterables.transform(names, function); assertThat(result, contains(4, 4, 4, 3)); } @Test public void whenTransformingUsingComposedFunction_thenTransformed() { Function<String,Integer> f1 = new Function<String,Integer>(){ @Override public Integer apply(String input) { return input.length(); } }; Function<Integer,Boolean> f2 = new Function<Integer,Boolean>(){ @Override public Boolean apply(Integer input) { return input % 2 == 0; } }; List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Collection<Boolean> result = Collections2.transform(names, Functions.compose(f2, f1)); assertEquals(4, result.size()); assertThat(result, contains(true, true, true, false)); } @Test public void whenFilteringAndTransformingCollection_thenCorrect() { Predicate<String> predicate = new Predicate<String>() { @Override public boolean apply(String input) { return input.startsWith("A") || input.startsWith("T"); } }; Function<String, Integer> func = new Function<String,Integer>(){ @Override public Integer apply(String input) { return input.length(); } }; List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); Collection<Integer> result = FluentIterable.from(names) .filter(predicate) .transform(func) .toList(); assertEquals(2, result.size()); assertThat(result, containsInAnyOrder(4, 3)); }
-
Java
3200 引用 • 8216 回帖
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于