본문 바로가기
언어/JAVA

[JAVA][Comparable][Compare] 비교

by 이민우 2020. 4. 4.
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