packagecom.xiaobu.streamDemo;importjava.util.Comparator;importjava.util.HashSet;importjava.util.Set;importjava.util.stream.Stream;/**
* The type Stream demo 3.
*
* @author tanhongwei
* @version JDK1.8.0_301
* @date on 2021/8/23 14:14
* @description
*/publicclassStreamDemo3{/**
* The entry point of application.
*
* @param args the input arguments
*/publicstaticvoidmain(String[] args){setSortAsc();setSortDesc();}/**
* Sets sort asc.
*/publicstaticvoidsetSortAsc(){Set<Integer> set =newHashSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);Stream<Integer> sortedAsc = set.stream().sorted();
sortedAsc.forEach(System.out::println);}/**
* Sets sort desc.
*/publicstaticvoidsetSortDesc(){Set<Integer> set =newHashSet<>();
set.add(1);
set.add(2);
set.add(3);
set.add(4);Stream<Integer> sortedDesc = set.stream().sorted(Comparator.reverseOrder());
sortedDesc.forEach(System.out::println);}}
Array排序
/**
* Arr sort asc.
*/publicstaticvoidarrSortAsc(){int[] arr ={1,2,3,4};IntStream arrSorted =Arrays.stream(arr).sorted();
arrSorted.forEach(System.out::println);}/**
* Gets max value in arr.
*/publicstaticvoidgetMaxValueInArr(){int[] arr ={1,2,3,4};int max =Arrays.stream(arr).max().getAsInt();System.out.println("max = "+ max);}
对象属性排序
packagecom.xiaobu.streamDemo;importlombok.Data;importjava.math.BigDecimal;importjava.util.ArrayList;importjava.util.Comparator;importjava.util.List;importjava.util.stream.Collectors;/**
* The type Stream demo 3.
*
* @author tanhongwei
* @version JDK1.8.0_301
* @date on 2021/8/23 14:14
* @description
*/publicclassPersonStreamSort{/**
* The type Person.
*/@DatapublicstaticclassPerson{privateString name;privateBigDecimal salary;/**
* Instantiates a new Person.
*/publicPerson(){}/**
* Instantiates a new Person.
*
* @param name the name
* @param salary the salary
*/publicPerson(String name,BigDecimal salary){this.name = name;this.salary = salary;}}/**
* The entry point of application.
*
* @param args the input arguments
*/publicstaticvoidmain(String[] args){Person p1 =newPerson("张三",newBigDecimal("50.0"));Person p2 =newPerson("王五",newBigDecimal("25.0"));Person p3 =newPerson("李四",newBigDecimal("68.0"));Person p4 =newPerson("李四",newBigDecimal("17.0"));Person p5 =newPerson("张三",newBigDecimal("45.0"));List<Person> list =newArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);sortAsc(list);sortDesc(list);}/**
* Sort asc.
*
* @param list the list
*/publicstaticvoidsortAsc(List<Person> list){List<Person> collect = list.stream().sorted(Comparator.comparing(Person::getSalary)).collect(Collectors.toList());System.out.println("元素的属性值正序:"+ collect);}/**
* Sort desc.
*
* @param list the list
*/publicstaticvoidsortDesc(List<Person> list){List<Person> collect = list.stream().sorted(Comparator.comparing(Person::getSalary).reversed()).collect(Collectors.toList());System.out.println("元素的属性值倒序:"+ collect);}}