public
class LamdaTest {
@Test
public void test1() {
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("hello");
}
};
r1.run();
System.out.println("===============");
Runnable r2 = () ->System.out.println("hello lambda");
r2.run();
}
@Test
public void test2(){
Consumer consumer = x -> System.out.println("这是test2"+x);
consumer.accept(1);
}
@Test
public void test3(){
Comparator comparator = (x,y) -> x + y;
System.out.println(comparator.compare(1,2));;
}
}
public class LamdaTest01 {
//Consumer消费型接口
public void happy(double money, Consumer consumer){
consumer.accept(money);
}
@Test
public void test01(){
happy(10000, m -> System.out.println("你们刚哥喜欢消费,每次消费"+m+"元"));
}
//Supplier供给型接口
// 需求:产生指定数量整数,并存入到集合中
public List getNumList(int num, Supplier supplier){
List list = new ArrayList<>();
for (int i = 0; i < num; i++){
list.add(supplier.get());
}
return list;
}
@Test
public void test02(){
List numList = getNumList(5, () -> (int) (Math.random() * 100));
for (Integer numm : numList) {
System.out.println(numm);
}
}
//函数型接口
public Integer getStrLength(String str, Function function){
return function.apply(str);
}
@Test
public void test03(){
System.out.println(getStrLength("你好啊",x -> x.length()));
}
// 断言型接口
// 需求:将满足条件的字符串放入到集合中去
public List filterStr(List list, Predicate predicate){
List list1 = new ArrayList<>();
for (String str:
list) {
if (predicate.test(str)){
list1.add(str);
}
}
return list1;
}
@Test
public void test04(){
List list = Arrays.asList("张三","Hello world","李庆霖","王五","lambda","嗯哼嗯哼蹦擦擦");
List strings = filterStr(list, x -> x.length() >= 7);
for (String str:
strings) {
System.out.println(str);
}
}
}