logo

Java에서 ArrayList를 정렬하는 방법

자바에서는 수집 인터페이스를 제공하는 프레임워크입니다( 설정, 목록, 대기열, 등) 및 클래스( 배열리스트, 링크드리스트, 등) 개체 그룹을 저장합니다. 이러한 클래스는 데이터를 순서 없이 저장합니다. 때로는 데이터를 순서대로 정렬해야 하는 경우도 있습니다. 정렬 . 정렬은 다음 두 가지 방법으로 수행할 수 있습니다. 오름차순 또는 내림차순 주문하다.

이 섹션에서는 다음 내용을 학습합니다. ArrayList를 오름차순으로 정렬하는 방법 그리고 내림차순.

배열목록

~ 안에 자바 , 배열목록 에 정의된 컬렉션 프레임워크 클래스입니다.java.util패키지. AbstractList 클래스를 상속합니다. 요소를 동적으로 저장합니다. ArrayList의 장점은 크기 제한이 없다는 것입니다. 이는 기존 어레이보다 더 유연합니다. 중복된 요소가 있을 수 있습니다. 또한 List 인터페이스의 모든 메소드를 사용할 수 있습니다. 목록 상호 작용.

ArrayList를 오름차순과 내림차순 두 가지 방법으로 정렬할 수 있습니다. Collections 클래스는 Java에서 ArrayList를 정렬하는 두 가지 메소드를 제공합니다.

    종류() 역순으로()

Collections.sort() 메서드

ArrayList는 다음을 사용하여 정렬할 수 있습니다. 종류() 의 방법 Java의 컬렉션 클래스 . ArrayList의 객체를 정렬할 매개변수로 받아들이고 해당 요소의 자연스러운 순서에 따라 오름차순으로 정렬된 ArrayList를 반환합니다.

자바 while 조건

통사론

 public static <t extends comparable> void sort(List list) </t>

기억하다: ArrayList의 모든 요소는 상호 비교 가능해야 합니다. 그렇지 않으면 오류가 발생합니다. ClassCastException. 여기서 상호 비교 가능하다는 것은 목록에 동일한 유형의 요소가 있어야 함을 의미합니다. 예를 들어 다음 코드 조각을 살펴보세요.

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

위의 예에서 목록에는 4개의 요소가 있으며 그 중 3개는 String 유형이고 하나는 Integer 유형입니다. String에 있는 세 요소는 서로 비교할 수 있지만 Integer 유형의 요소는 다른 세 요소와 비교할 수 없습니다. 따라서 목록에는 동일한 유형의 요소가 있어야 합니다.

Collections.reverseOrder() 메서드

ArrayList를 정렬하고 싶다면 내림차순 주문하다, 자바 컬렉션 수업은 제공합니다 역순으로() 방법. ArrayList를 정렬할 수 있게 해줍니다. 역사전식 주문하다.

통사론

 public static Comparator reverseOrder() 

Comparable 인터페이스를 구현하는 개체 컬렉션에 자연 순서의 반대를 적용하는 비교기를 반환합니다.

reverseOrder() 메서드를 직접 호출하지 않는다는 점을 기억하세요. 우리는 그것을 다음과 함께 사용합니다. 컬렉션.정렬() 방법은 다음과 같습니다.

 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

따라서 ArrayList의 내림차순 정렬은 두 단계로 수행됩니다. 먼저 ArrayList는 데이터를 오름차순으로 정렬한 다음 정렬된 데이터를 역순으로 정렬합니다. 역순으로() 방법.

ArrayList를 오름차순으로 정렬하는 프로그램을 만들어 보겠습니다.

AVL 트리 회전

ArrayList를 오름차순으로 정렬

다음 예제에서는 String 유형의 ArrayList를 만들고 여기에 몇 가지 요소를 추가했습니다. 그런 다음 Collections 클래스의 sort() 메소드를 호출하고 ArrayList 클래스의 객체, 즉 요소를 오름차순으로 정렬하는 목록을 전달했습니다.

SortArrayListExample1.java

 import java.util.*; public class SortArrayListExample1 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

산출:

 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Integer 유형의 ArrayList를 정렬하는 또 다른 예를 살펴보겠습니다.

C에서 문자열 반전하기

SortArrayListExample2.java

 import java.util.*; public class SortArrayListExample2 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(55); list.add(34); list.add(98); list.add(67); list.add(39); list.add(76); list.add(81); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

산출:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

ArrayList를 내림차순으로 정렬

다음 예제에서는 String 유형의 ArrayList를 만들고 여기에 몇 가지 요소를 추가했습니다. 그런 다음 Collections 클래스의 sort() 메소드와 함께 reverseOrder() 메소드를 호출하고 ArrayList 클래스의 객체, 즉 요소를 내림차순으로 정렬하는 목록을 전달했습니다.

SortArrayListExample3.java

 import java.util.*; public class SortArrayListExample3 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

산출:

 Before Sorting: [Data Science, Testing, C#, Basic Language, UML, Algorithms, Computer Networks, Python] After Sorting: [UML, Testing, Python, Data Science, Computer Networks, C#, Basic Language, Algorithms] 

SortArrayListExample4.java

 import java.util.*; public class SortArrayListExample4 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(566); list.add(230); list.add(123); list.add(110); list.add(689); list.add(12); list.add(95); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in descending order Collections.sort(list, Collections.reverseOrder()); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

산출:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12