다음 방법을 사용하여 목록을 정렬할 수 있습니다.
- stream.sorted() 메소드 사용
- Comparator.reverseOrder() 메소드 사용
- Comparator.naturalOrder() 메소드 사용
- Collections.reverseOrder() 메소드 사용
- Collections.sort() 메소드 사용
자바 스트림 인터페이스
Java Stream 인터페이스는 목록을 정렬하기 위한 두 가지 방법을 제공합니다.
sorted() 메서드
스트림 인터페이스는 목록을 정렬하는 sorted() 메서드를 제공합니다. 이는 Stream 인터페이스에 정의되어 있습니다. java.util 패키지 . 자연 순서에 따라 정렬된 스트림을 반환합니다. 요소를 비교할 수 없으면 java.lang.ClassCastException이 발생합니다. 메소드의 서명은 다음과 같습니다.
Stream sorted()
매개변수
T: 일종의 스트림 요소입니다.
Java Stream.sorted(비교기 비교기)
또한 제공된 비교기에 따라 정렬된 스트림을 반환합니다. 순서가 지정된 스트림에서는 안정적입니다. 메소드의 서명은 다음과 같습니다.
Stream sorted(Comparator comparator)
매개변수
- T는 스트림 요소의 유형입니다.
- 요소를 비교하는 데 사용되는 비교기
예
다음 예에서는 다음 방법을 사용했습니다.
- Java 8에서 stream()은 객체 컬렉션을 처리하는 데 사용되는 API입니다.
- Collect() 메소드는 스트림에서 요소를 수신하여 컬렉션에 저장하는 데 사용됩니다.
- toList()는 모든 입력 요소를 발생 순서대로 목록으로 수집하는 수집기를 반환합니다.
예
import java.util.*; import java.util.stream.*; public class SortListExample1 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList('Tanu', 'Kamal', 'Suman', 'Lucky', 'Bunty', 'Amit'); List sortedList = slist.stream().sorted().collect(Collectors.toList()); sortedList.forEach(System.out::println); } }
산출:
자바 Comparator.reverseOrder() 메소드
reverseOrder()는 java.util 패키지에 정의되어 있는 Comparator 인터페이스의 메소드입니다. 이 메서드는 자연 순서의 반대를 적용하는 비교기를 반환합니다. null을 비교할 때 NullPointerException이 발생합니다. 메소드 서명은 다음과 같습니다.
static <t extends comparable> Comparator reverseOrder() </t>
Comparable은 java.lang 패키지에 속하는 인터페이스이기도 합니다.
매개변수
T: 비교할 요소의 비교 가능한 유형입니다.
예
import java.util.*; import java.util.stream.Collectors; public class SortListExample2 { public static void main(String[] args) { //returns a list view List slist = Arrays.asList('78', 'a', 'm', 'b', 'z', 'c', '12', 'l', '1'); ListsortedList=slist.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); sortedList.forEach(System.out::println); } }
산출:
자바 비교기.naturalOrder()
이 메서드는 Comparable 개체를 자연 순서로 비교하는 비교기를 반환합니다. 반환된 비교 항목은 직렬화 가능합니다. null을 비교하면 NullPointerException이 발생합니다. Java 8에서 온 것입니다. 메소드의 서명은 다음과 같습니다.
Static <t extends comparable> Comparator naturalOrder() </t>
- 이 메서드는 요소를 자연 순서(오름차순)로 정렬합니다.
- null이 있는 경우 맨 위에 null을 넣습니다.
- 목록에 소문자와 대문자가 모두 있는 경우 자연 순서로 대문자 요소를 먼저 배치한 다음 자연 순서로 소문자를 배치합니다.
매개변수
T: 비교할 요소의 비교 유형입니다.
예
import java.util.*; public class SortListExample3 { public static void main(String[] args) { List country = Arrays.asList('Russia', 'India', 'China', 'Japan', '', 'Ghana'); List country1 = Arrays.asList('Russia','india', 'China', 'Japan', '', 'ghana'); System.out.println(country); //prints the same list as we define country.sort(String.CASE_INSENSITIVE_ORDER); //sorts the list in case insensitive order System.out.println(country1); country.sort(Comparator.naturalOrder()); //sorts list in ascending order System.out.println(country); //sorts list in ascending order (null, capital letter and small letter) country1.sort(Comparator.naturalOrder()); System.out.println(country1); } }
산출:
Java Collections.reverseOrder() 메소드
java.lang 패키지에 속하는 Java Collections 클래스의 메소드입니다. 자연 순서의 반대를 적용하는 비교기를 반환합니다. 메소드의 서명은 다음과 같습니다.
public static Comparator reverseOrder()
매개변수
비교기에 의해 비교되는 객체의 클래스입니다.
예
번호가 매겨진 알파벳
import java.util.Arrays; import java.util.Collections; import java.util.List; public class SortListExample4 { public static void main(String args[]) { List list = Arrays.asList(10,1,-20,40,5,-23,0); Collections.sort(list, Collections.reverseOrder()); System.out.println(list); } }
산출:
자바 Collections.sort() 메서드
Collections 클래스에는 목록을 정렬하는 두 가지 방법이 있습니다.
sort() 메서드
sort() 메서드는 해당 요소의 자연스러운 순서에 따라 목록을 오름차순으로 정렬합니다. 메소드의 서명은 다음과 같습니다.
public static <t extends comparable> void sort() (List list) </t>
매개변수
T: 유형 매개변수입니다.
list: 정렬할 목록입니다.
Collections.sorts() 메소드의 또 다른 예를 살펴보겠습니다.
예
import java.util.*; public class SortListExample5 { public static void main(String[] args) { List sList = new ArrayList(); sList.add('m'); sList.add('k'); sList.add('a'); sList.add('p'); sList.add('d'); Collections.sort(sList); //sorts array list for(String str: sList) System.out.print(' '+str); } }
산출: