[정렬] 자바에서 정렬하기

📌 기본 타입 데이터의 정렬

int[] data = new int[capacity]; Arrays.sort(data); //전체 정렬 Arrays.sort(data, 0, size); //인덱스 0부터 size 개수만큼 정렬
Java

📌 객체의 정렬

기본 정렬

String[] fruits = new String[]{"B", "C", "A"}; Arrays.sort(fruits); //문자열 순서대로 정렬된다. A, B, C
Java

ArraysList 정렬

List<String> fruits = new ArrayList<>(); fruits.add("B"); fruits.add("A"); fruits.add("C"); Collections.sort(fruits);
Java

원하는 기준으로 정렬 (Comparable Interface)

음수 → 해당 객체의 순위가 더 높음
0 → 순위가 같다.
양수 → 다른 객체의 순위가 더 높음
public class Person implements Comparable<Person> { int age; String name; public Person(int age, String name) { this.age = age; this.name = name; } @Override public int compareTo(Person other) { //return age - other.age; return name.compareTo(other.name); } } Person[] persons = new Person[5]; ... Arrays.sort(persons); List<Person> persons = new ArrayList<>(); ... Collections.sort(persons);
Java

원하는 기준으로 정렬 (Comparator Interface)

두 가지 이상의 기준으로 정렬을 지원하려면 Comparator를 사용한다.
Comparator<Person> ageComparator = new Comparator<>() { @Override public int compare(Person p1, Person p2) { return p1.age - p2.age; } } Comparator<Person> nameComparator = new Comparator<>() { @Override public int compare(Person p1, Person p2) { return p1.name.compareTo(p2.name); } } Array.sort(persons, ageComparator); //나이 기준으로 정렬 Array.sort(persons, nameComparator); //이름 기준으로 정렬
Java
TOP