Skip to content

[정렬] #258

Description

@blossun

Comparable 구현

  • List
publicstaticList<Person> arr = newArrayList<>();
Collections.sort(arr);
privatestaticclassWordimplementsComparable<Word> {
privateIntegerlength;
privateStringstr;
publicWord(Stringstr) {
this.length = str.length();
this.str = str;
}
@OverridepublicintcompareTo(Wordo) {
if (this.length < o.length) {
return -1;
} elseif (this.length == o.length) {
returnthis.str.compareTo(o.str); //동일한 단어라면 0이 리턴되고 중복이 제거되고 저장된다. 그리고 알파벳 순서로 정렬됨
} else {
return1;
}
}
}

Comparator 정렬기준

// arrayArrays.sort(arr, Comparator.comparingInt(a -> a[1])); // a[1]를 기준으로 오름차순 정렬// liststringList.sort((num1, num2) -> (num2 + num1).compareTo(num1 + num2)); // 30, 3 -> 303, 330 중 330이 먼저
  • sorted() - new Comparator
importjava.util.Arrays;
importjava.util.Comparator;
publicclassN12915 {
privateintN;
publicString[] solution(String[] strings, intn) {
N = n;
String[] results = Arrays.stream(strings).sorted(newComparator<String>() {
@Overridepublicintcompare(Stringo1, Stringo2) {
intresult = o1.charAt(n) - o2.charAt(n);
if (result == 0) {
returno1.compareTo(o2);
}
returnresult;
}
}).toArray(String[]::new);
returnresults;
}
}

Multi 정렬 - thenComparing

fileNameList.sort(Comparator.comparing(FileName::getHead).thenComparing(Comparator.naturalOrder()));

Metadata

Metadata

Assignees

Labels

Refer★별★공부한 내용 다시 보기

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions