ImportJava.util.*;Importjava.util.stream.Collectors;ImportJava.util.stream.Stream;/*** Created by Meicai on 2017/10/30.*/ Public classtestjava8_01 { Public Static voidMain (String[]args) {test11 (); } /*** {soldier =[worker{id=5, name= ' Liu Feng ', gender=0, age=20, salary=20.56, worktype= Soldier}], counselor =[worker{id=3, Name= ' Xunyu ', gender= 1, age=40, salary=40.56, Worktype= Counsellor}], leader =[worker{id=1, Name= ' Cao Caocao ', Gender=1, age=50, salary=50.56, worktype= leader}, Worker {id=4, name= ' Liu Bei ', Gender=1, age=60, salary=60.56, worktype= leader}], warlord =[worker{id=2, Name= ' Dian Wei ', gender=1, age=30, salary= 30.56, Worktype= warlord}]} = =--------------= = key: Soldier |count:1| [, Liu Key: Counselor |count:1| [, Xunyu key: Leader |count:2| [, Cao, Liu Bei key: Warlord |count:1| [, Code Wei*/ Private Static voidtest11 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (2, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (3, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (4, "Liu Bei", 1, 60, 60.56, Worktype leader),NewWorker (5, "Liu Feng", 0, 20, 20.56, Worktype. soldier)) ; Map<WorkType,List<Worker>> map= Workerlist.stream (). Collect (Collectors.groupingby (i->I.getworktype ())); SYSTEM.OUT.PRINTLN (map); System.out.println ("==--------------=="); Map.keyset (). ForEach (Key-{String names= Map.get (key). Stream (). Map (Worker::getname). Reduce ("[", (x, y)->{returnX+ "," +y;}); System.out.println ("Key:" +key+ "|count:" +map.get (Key). Size () + "|" +names); }); } /** * {soldier =[worker{id=5, name= ' Liu Feng ', gender=0, age=20, salary=20.56, worktype= Soldier}], counselor =[worker{id=3, Name= ' Xunyu ', gender=1, a Ge=40, salary=40.56, Worktype= Counsellor}], leader =[worker{id=1, Name= ' Cao Caocao ', Gender=1, age=50, salary=50.56, worktype= leader}, Worker{id =4, Name= ' Liu Bei ', Gender=1, age=60, salary=60.56, worktype= leader}], warlord =[worker{id=2, Name= ' Dian Wei ', gender=1, age=30, salary=30.56 , Worktype= Warlord}]} * = =--------------= = key: Soldier |value:[worker{id=5, Name= ' Liu Feng ', gender=0, age=20, salary=20.56, Workty Pe= Soldier}] worker{id=5, Name= ' Liu Feng ', gender=0, age=20, salary=20.56, worktype= soldier} Key: Counselor |value:[worker{id=3, Name= ' Xunyu ', Gender=1, age=40, salary=40.56, Worktype= Counsellor}] worker{id=3, name= ' Xunyu ', gender=1, age=40, salary=40.56, Worktype= Counsellor} Key: Lead |value:[worker{id=1, name= ' Caocao ', gender=1, age=50, salary=50.56, worktype= leader}, Worker{id=4, Name= ' Liu Bei ', Gender=1, a Ge=60, salary=60.56, worktype= leader}] worker{id=1, name= ' Caocao ', gender=1, age=50, salary=50.56, worktype= leader} Worker{id= 4, name= ' Liu Bei ', Gender=1, age=60, salary=60.56, worktype= leader} key: Warlord |value:[worker{id=2, name= ' Code Wei ', Gender=1, age=30, salary=30.56, Worktype= warlord}] W orker{id=2, Name= ' Dian Wei ', gender=1, age=30, salary=30.56, Worktype= warlord}*/ Private Static voidtest10 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (2, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (3, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (4, "Liu Bei", 1, 60, 60.56, Worktype leader),NewWorker (5, "Liu Feng", 0, 20, 20.56, Worktype. soldier)) ; Map<WorkType,List<Worker>> map=Workerlist.stream (). Collect (Collectors.groupingby (Worker::getworktype)); SYSTEM.OUT.PRINTLN (map); System.out.println ("==--------------=="); Map.keyset (). ForEach (Key-{System.out.println ("Key:" +key+ "|value:" +Map.get (key)); List<Worker> workerlistcurrent=Map.get (key); Workerlistcurrent.foreach (System.out::p rintln); }); } /*** Cao Weshing Liu Bei*/ Private Static voidTest9 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (2, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (3, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (4, "Liu Bei", 1, 60, 60.56, Worktype leader),NewWorker (5, "Liu Bei", 0, 20, 20.56, Worktype. soldier)) ; Stream<String> stream=Workerlist.stream (). Map (Worker::getname). distinct (); List<String> namelist=Stream.collect (Collectors.tolist ()); Namelist.foreach (System.out::p rintln); } /*** disorder + de-weight * code We Liubei Xunyu Cao*/ Private Static voidTest8 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (2, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (3, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (4, "Liu Bei", 1, 60, 60.56, Worktype leader),NewWorker (5, "Liu Bei", 0, 20, 20.56, Worktype. soldier)) ; Stream<String> stream= Workerlist.stream (). Map (i->i.getname ()); Set<String> namelist=Stream.collect (Collectors.toset ()); Namelist.foreach (System.out::p rintln); } /*** Cao Weshing Liu Bei Liu bei*/ Private Static voidtest7 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (2, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (3, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (4, "Liu Bei", 1, 60, 60.56, Worktype leader),NewWorker (5, "Liu Bei", 0, 20, 20.56, Worktype. soldier)) ; Stream<String> stream= Workerlist.stream (). Map (i->i.getname ()); List<String> namelist=Stream.collect (Collectors.tolist ()); Namelist.foreach (System.out::p rintln); } /*** True*/ Private Static voidTest6 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; BooleanBeixst= Workerlist.stream (). AnyMatch (I->i.getname (). Equals ("Xunyu")); System.out.println (BEIXST); } /*** worker{id=1, name= ' Caocao ', gender=1, age=50, salary=50.56, worktype= leader}*/ Private Static voidTest5 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; Optional<Worker> opworker=Workerlist.stream (). Findany (); if(Opworker.ispresent ()) {System.out.println (Opworker.get ()); } Else{System.out.println ("Not Found"); } } /*** worker{id=1, name= ' Code Wei ', Gender=1, age=30, salary=30.56, worktype= warlord}*/ Private Static voidtest4 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; Optional<Worker> opworker= Workerlist.stream (). Filter (I->i.getworktype () = =worktype. Soldiers). FindFirst (); if(Opworker.ispresent ()) {System.out.println (Opworker.get ()); } Else{System.out.println ("Not Found"); } } /***worker{id=1, name= ' Caocao ', gender=1, age=50, salary=50.56, worktype= leader}*/ Private Static voidtest3 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; Optional<Worker> opworker= Workerlist.stream (). Filter (I->i.getworktype () = =Worktype. FindFirst (); System.out.println (Opworker.get ()); } /*** worker{id=1, name= ' Code Wei ', Gender=1, age=30, salary=30.56, worktype= warlord}*/ Private Static voidtest2 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; Stream<Worker> stream= Workerlist.stream (). Filter (i->I.getworktype (). Equals (Worktype. Warlord)); Stream.foreach (System.out::p rintln); } /*** worker{id=1, name= ' Cao ', gender=1, age=50, salary=50.56, worktype= leader} worker{id=1, Name= ' Liu Bei ', Gender=1, age= salary=60.56, worktype= leader}*/ Private Static voidtest1 () {List<Worker> workerlist=Arrays.aslist (NewWorker (1, "Caocao", 1, 50, 50.56, Worktype leader),NewWorker (1, "Code Wei", 1, 30, 30.56, Worktype),NewWorker (1, "Xunyu", 1, 40, 40.56, Worktype counsellor),NewWorker (1, "Liu Bei", 1, 60, 60.56, Worktype leader)) ; Stream<Worker> stream= Workerlist.stream (). Filter (I->i.getworktype () = =Worktype. Leadership); Stream.foreach (i-System.out.println (i)); }}
Stream
Java8 Streamapi Use