jdk8的新特性---函数编程lambda

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;
    }


}


猜你喜欢

转载自blog.csdn.net/connie1451/article/details/79982584