package lambda; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.function.Predicate; import com.google.common.cache.Cache; import com.google.common.collect.Lists; public class Test { public static List<String> list =Lists.newArrayList(); public static String lambda() { Iterator<String> size = list.stream().filter(a -> a.length()>=2).iterator(); size.forEachRemaining(System.out::println); return null; } public static void filterTest(List<String> languages, Predicate<String> condition) { languages.stream().filter(x -> condition.test(x)).forEach(x -> System.out.println(x + " ")); } public static void main(String[] args) { List<String> languages = Arrays.asList("Java","Python","scala","Shell","R"); System.out.println("Language starts with J: "); filterTest(languages,x -> x.startsWith("J")); System.out.println("\nLanguage ends with a: "); filterTest(languages,x -> x.endsWith("a")); System.out.println("\nAll languages: "); filterTest(languages,x -> true); System.out.println("\nNo languages: "); filterTest(languages,x -> false); System.out.println("\nLanguage length bigger three: "); filterTest(languages,x -> x.length() > 4); } public void a(Object s) { System.out.println(s); } }
函数编程2:
package lambda; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; import com.google.common.collect.Collections2; import com.google.common.collect.Lists; public class test11 implements Consumer { public static void main(String[] args) { // final String s = new String(); // s. List<String> list = Lists.newArrayList("zhang", "hang"); for (int i = 0; i < 10000; i++) { list.add(i + ""); } final List<String> list2 = Lists.newArrayList(); Map m = new HashMap<>(); list.stream() .filter(n -> (n.contains("9999") || n.contains("zh"))) .collect(Collectors.toList()) //.forEach(n-> m.put(n, n)); .forEach(n->list2.add(n));//.forEach(list2::add) = .forEach(n->list2.add(n)) list2.forEach(System.err::println); // Iterator<String> lt = t.iterator(); // lt.forEachRemaining(System.err::println); // while(lt.hasNext()) { // System.out.println(); // } // new Test222().run() } @Override public void accept(Object t) { // TODO Auto-generated method stub } } //// @FunctionalInterface //// interface Test222 { //// // }
package lambda; import java.lang.FunctionalInterface; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @FunctionalInterface public interface Test2<K,V> extends Map<K, V> { @Override default boolean isEmpty() { // TODO Auto-generated method stub return false; } @Override default boolean containsKey(Object key) { // TODO Auto-generated method stub return false; } @Override default boolean containsValue(Object value) { // TODO Auto-generated method stub return false; } @Override default V get(Object key) { // TODO Auto-generated method stub return null; } @Override default V put(K key, V value) { // TODO Auto-generated method stub return null; } @Override default V remove(Object key) { // TODO Auto-generated method stub return null; } @Override default void putAll(Map<? extends K, ? extends V> m) { // TODO Auto-generated method stub } @Override default void clear() { // TODO Auto-generated method stub } @Override default Set<K> keySet() { // TODO Auto-generated method stub return null; } @Override default Collection<V> values() { // TODO Auto-generated method stub return null; } @Override default Set<Entry<K, V>> entrySet() { // TODO Auto-generated method stub return null; } }