java-lambda簡化寫法整理


lambda寫法

//lambda 函數編程 替代匿名接口實現 //()參數列表 ->連接符 {方法體}

//接口中只許有一個需要實現的接口

1. 簡寫多線程-run方法

new Thread(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}).start();

//lambda
new Thread(()->{
   System.out.println(Thread.currentThread().getId());
}).start();

new Thread(()->{System.out.println(Thread.currentThread().getName());}).start();
new Thread(()->System.out.println(Thread.currentThread().getName())).start();

2.接口實現方法簡化

public static void testPerson(Iperson person) {
System.out.println(person.eat("test"));
}

public static void main(String[] args) {
testPerson(new Iperson() {
@Override
public int eat(String food) {
// TODO Auto-generated method stub
return 1;
}
});

testPerson((String food)->{return 2;});
       testPerson(food->2);

3.List-sort簡化

1.javabean類實現
@Override
public int compareTo(UserBean o) {
// TODO Auto-generated method stub
return o.getAge()-this.getAge();
}
2.調用sort時實現
List<UserBean> llBeans = new ArrayList<UserBean>();
llBeans.add(new UserBean(18,"James"));
llBeans.add(new UserBean(22,"Sally"));

//調用時實現排序
Collections.sort(llBeans,new Comparator<UserBean>()
                {
                    @Override
                    public int compare(UserBean o1, UserBean o2) {
                        // TODO Auto-generated method stub
                        return o1.getAge()-o2.getAge();
                    }
                });
//lambda
Collections.sort(llBeans, (o1,o2)->{return o2.getAge()-o1.getAge();});
for (UserBean userBean : llBeans) {
   System.out.println(userBean);
}
Collections.sort(llBeans,(o1,o2)->o2.getAge()-o1.getAge());

4.參數省略問題,更加省略寫法

  • 1.參數列表小括號參數類型可以省略

  • 2.參數列表小括號只有一個參數,括號可以省略

  • 3.大括號如果也只有一句話,大括號可以省略,return 分號可以省略

     

new Thread(()->System.out.println(Thread.currentThread().getName())).start();
testPerson(food->2);    
Collections.sort(llBeans,(o1,o2)->o2.getAge()-o1.getAge());

5.循環簡化

List<TestList> list = new ArrayList<TestList>();
list.add(new TestList("aa", 1));
list.add(new TestList("bb", 0));

Collections.sort(list, (o1,o2)->o1.getOrderNo()-o2.getOrderNo());

for (TestList ll : list) {
   System.out.println(ll);
}

list.forEach((TestList ll)->{System.out.println(ll);});
list.forEach(d->System.out.println(d));

6.Map迭代簡化

Map<String, Object> map = new TreeMap<String, Object>();
map.put("aa", 11);
map.put("bb",22);
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey()+":"+entry.getValue());
}

for (String key : map.keySet()) {
System.out.println(key+"::"+map.get(key));
}

map.forEach((key,value)->System.out.println(key+"="+value));

map.forEach((key,value)->{System.out.println(key+"=="+value);});

7.List迭代簡化

llBeans.forEach(u->System.out.println(u));

8.Set迭代簡化

Set<String> ss = new TreeSet<String>();
ss.add("abc");
ss.add("edf");
ss.forEach(s->System.out.println(s));
for (String string : ss) {
System.out.println(string);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM