728x90
반응형
숫자 비교
Integer x = 0;
Integer y = 0;
Integer z = 1;
x.compareTo(1); // 0 - 1 = -1
Integer.compare(x,y); // 0
Integer.compare(x,y); // -1
x.compareTo(y); //0
x.compareTo(z); //-1
*사실상 그냥 빼기
*int 안됨. Integer 같은 자료형만 가능.
문자열 비교
String str = "minwooLee";
str.compareTo("minwooLee"); // 완전히 일치하기에 0
str.compareTo("minwoo"); // 뒤의 세 개가 일치하지 않아 3
str.compareTo("minwool") // L부터 다른데, L의 아스키 코드가 76, l의 아스키 코드가 108
// 76 - 108 = -32
str.compareTo("minwoolee") // 마찬가지로 -32
str.compareTo("s"); // m의 아스키 코드가 109, s가 115 이므로 -6
*처음 글자부터 같은지 비교한다. 만약 다른 글자가 나올 경우 해당 글자와의 아스키 코드의 뺄셈값.
*일부만 포함되어 있을 경우 몇 개가 일치하지 않는지.
*앞에서부터 계산하기에, 앞에서부터 같아야 한다. abcd에서 bc를 비교해봤자 소용 없음.
객체 비교
사용 예시
class Student implements Comparable {
String name;
int score;
Student(String name, int score) { this.name = name; this.score = score; }
@Override
public int compareTo(Student s) {
if(this.score > s.score) return -1
return 1;
}
}
*-1은 우선순위가 밀린다.
*1은 우선순위가 올라간다.
728x90
반응형
'언어 > JAVA' 카테고리의 다른 글
[JAVA][ARRAYS] 배열 비교 (0) | 2020.05.26 |
---|---|
[JAVA] String 맨날 헷갈리는 문법들 (0) | 2020.05.07 |
[JAVA][Array] 배열 정렬 (0) | 2020.04.04 |
[JAVA] PriorityQueue (0) | 2020.04.04 |
[JAVA] ArrayList (0) | 2020.04.04 |