Подробнее можно найти на сайте: HTTP: //www.importnew.com/15259.html
Тестовое задание :
com.icil.report.jdbc пакет; Импорт java.util.ArrayList; Импорт java.util.Comparator; Импорт java.util.List; Импорт java.util.stream.Collectors; Импорт org.junit.Test; Импорт com.icil .report.pojo.GroupByCourier; общественный класс OrderByTest { / * * * Java7 обычная сортировка * комбинация нескольких состояние Сортировать: // NumberOfShipments сортируется в соответствии с первым, а затем более Courier сортировки * из JDK 8, теперь мы можем положить больше Компаратор цепь вместе (цепь вместе) , чтобы построить более сложную логику сравнения : * @throws Exception * / @test общественные недействительные orderBYtest1 () бросает исключение { в ArrayList <GroupByCourier> = в ArrayList новый новыйArrayList <GroupByCourier> (); // GroupByCourier (String курьером, Целочисленные numberOfShipments, Целый numberOfSubscriptions) arrayList.add ( новый GroupByCourier ( " F " , 2 , 3 )); arrayList.add ( новый GroupByCourier ( " б " , 10 , 6 )); arrayList.add ( новый GroupByCourier ( " " , 4 , 1 )); arrayList.add ( новый GroupByCourier ( "с " 15 , 8 )); arrayList.add ( новый GroupByCourier ( " C " 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 19 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8)); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.sort ( Comparator.comparing ( . GroupByCourier :: getNumberOfShipments) thenComparing (GroupByCourier :: getCourier)); // 先根据NumberOfShipments排序,然后在更具Courier排序 Comparator.comparing (GroupByCourier :: getNumberOfShipments) .thenComparing (GroupByCourier :: getCourier); arrayList.forEach (г -> {System. из .println (r.getCourier () + " - " + r.getNumberOfShipments () + " - " +r.getNumberOfSubscriptions ());}); } / * * * в качестве Java7 параллельных потоков упорядочения * Сортировка множества условие комбинации: // Первые NumberOfShipments сортировки и сортировки более Courier, а затем сортируются в соответствии NumberOfSubscriptions * начиная с JDK 8 Теперь мы можем компаратор цепь вместе множество (цепь вместе) , чтобы построить более сложную логику сравнения: * @throws Exception * / @test общественных недействительные orderBYtest02 () бросает исключение { ArrayList <GroupByCourier> = Список_массивы новых новый ArrayList <GroupByCourier> (); // GroupByCourier (String Courier, numberOfShipments Integer, Integer numberOfSubscriptions) arrayList.add ( новый новый GroupByCourier ( " е ", 2 , 3 )); arrayList.add ( новый GroupByCourier ( " б " , 10 , 6 )); arrayList.add ( новый GroupByCourier ( " " , 4 , 1 )); arrayList.add ( новый GroupByCourier ( " C " , 15 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 19 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); //先根据NumberOfShipments排序,然后在更具Courier排序,然后在根据NumberOfSubscriptions排序 // List <GroupByCourier> собирать = arrayList.parallelStream (). Отсортирован (Comparator.comparing (GroupByCourier :: getNumberOfShipments) .thenComparing (GroupByCourier :: getCourier) ) .collect (Collectors.toList ()); Список <GroupByCourier> = собирать . ArrayList.parallelStream () сортируется (Comparator.comparing (GroupByCourier :: getNumberOfShipments) .thenComparing (GroupByCourier :: getCourier) .thenComparing (GroupByCourier :: getNumberOfSubscriptions)) собирают (Collectors.toList ()). System.err.println (сбор); collect.forEach (г -> {System. из .println (r.getCourier () + " - " + r.getNumberOfShipments () + "- " + r.getNumberOfSubscriptions ());}); } / * * * java8 параллельных потоков упорядочения порядка разворота * . JDK 8 также обеспечивает полезный способ реверсирования Компаратор (обратный компаратор) - мы можем использовать его , чтобы быстро реверс нашей сортировки * мульти-условия комбинации Сортировка: // NumberOfShipments сортируются в соответствии с первым, потом еще Courier сортировки , а затем сортируются в соответствии с NumberOfSubscriptions * JDK 8 с самого начала, мы можем теперь положить больше Компаратор цепи с (цепью вместе) , чтобы построить более сложную логику сравнения: * @throws Exception * / @test общественных недействительных orderBYtest04 () бросает исключение { ArrayList <GroupByCourier> = Список_массивы нового новый ArrayList <GroupByCourier> (); , // GroupByCourier (String курьером, Целочисленные numberOfShipments, Целочисленные numberOfSubscriptions) arrayList.add ( новый GroupByCourier ( " F " , 2 , 3 )); arrayList.add ( новый GroupByCourier ( " б " , 10 , 6 )); arrayList.add ( новый GroupByCourier ( " " , 4 , 1 )); arrayList.add ( новый GroupByCourier ( " с " , 15 ,8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 19 , 8 )); arrayList.add ( новый GroupByCourier ( " C " , 1 , 8 )); arrayList.add ( новыйGroupByCourier ( " C " , 1. , 8. )); // первый отсортированные по NumberOfShipments, а затем отсортировать более Courier, то упорядоченные по NumberOfSubscriptions (теперь очередь) Компаратор <GroupByCourier> = compars . Компаратор Сравнение (GroupByCourier :: . getNumberOfShipments) thenComparing (:: GroupByCourier getCourier). thenComparing (GroupByCourier :: getNumberOfSubscriptions); Список <GroupByCourier> = сборным arrayList.parallelStream () отсортированный (. compars.reversed () ) .collect (Collectors.toList ()); система .err.println (сборный); collect.forEach (R & л -> {система.из .println (r.getCourier () + " - " + r.getNumberOfShipments () + " - " + r.getNumberOfSubscriptions ());}); } }