Java 8 (又稱為 jdk 1.8) 是 Java 語言開發的一個主要版本, Oracle 公司于 2014 年 3 月 18 日發布 Java 8 ,它支持函式式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等,
博主最近才有空研究了一下Java8的一些新特性,簡單地寫了一些測驗用例,感覺開始有那味了,受益頗深,將示例代碼貼出,以供大家學習交流,
測驗用例代碼:
import java.util.*; import java.util.stream.Collectors; /** * @ClassName Java8Test * @Description java8新特性測驗用例 * @Author zzp * @Date 2020/6/30 11:06 * @Version 1.0 */ public class Java8Test { public static void main(String[] args) { Java8Test test=new Java8Test(); List<String> hobbies1= Arrays.asList("籃球","看書","寫作"); List<String> hobbies2= Arrays.asList("足球","看書","睡覺"); Person mayun=new Person("馬云","老師",hobbies1); Person mahuateng=new Person("馬化騰","碼農",hobbies2); Person leijun=new Person("雷軍","碼農",hobbies1); List<Person> persons=Arrays.asList(mayun,mahuateng,leijun); //情景1:找一個人叫馬云的這個人詳細資料 //java8之前 Person person1= null; for (Person person:persons ) { if(person.getName().equals("馬云")){ person1= person; break; } } System.out.println(person1); //java8 一行搞定 Optional<Person> person2=persons.stream().filter(person -> person.getName().equals("馬云")).findFirst(); System.out.println(person2.orElse(new Person("叫馬云的人不存在"))); //情景2:按照職業給mayun mahuateng leijun這個三個人分組 //java8之前 Map<String,List<Person>> workPersonMap1=new HashMap<>(); for (Person person:persons) { String work=person.getWork(); List<Person> personList=null; if(null==workPersonMap1.get(work)){ personList=new ArrayList<>(); }else{ personList=workPersonMap1.get(work); } personList.add(person); workPersonMap1.put(work,personList); } System.out.println(workPersonMap1); //java8 一行搞定 Map<String, List<Person>> workPersonMap2= persons.stream().collect(Collectors.groupingBy(Person::getWork)); System.out.println(workPersonMap2); //情景3:獲得mayun mahuateng leijun這個三個人的所有愛好 //java8之前 Set<String> hobbiesSet=new HashSet<>(); for (Person person:persons) { hobbiesSet.addAll(person.getHobbies()); } System.out.println(hobbiesSet); //java8 一行搞定 Set<String> hobbiesSet2= persons.stream().flatMap(p->p.getHobbies().stream()).collect(Collectors.toSet()); System.out.println(hobbiesSet2); } }
import java.util.List; /** * @ClassName Person * @Description TODO * @Author zzp * @Date 2020/6/30 11:17 * @Version 1.0 */ public class Person { private String name; private String work; private List<String> hobbies; public Person() { } public Person(String name, String work, List<String> hobbies) { this.name = name; this.work = work; this.hobbies = hobbies; } public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getWork() { return work; } public void setWork(String work) { this.work = work; } public List<String> getHobbies() { return hobbies; } public void setHobbies(List<String> hobbies) { this.hobbies = hobbies; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", work='" + work + '\'' + ", hobbies=" + hobbies + '}'; } }
詳細的java8特性下一篇給大家貼出,大家看了有什么感受也可以在評論區交流,如果覺得博主不易,就給點個贊吧,拒絕白嫖~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/152385.html
標籤:Java
上一篇:java SE基礎
