수색…


기본 사용법

우주선 연산자는 왼쪽 연산자가 작을 때 -1 반환하고, 연산자가 같을 때는 0 반환하고 그렇지 않으면 1 반환합니다.

assert 10 <=> 20 == -1
assert 10 <=> 10 ​== 0
assert 30 <=> 10 == 1

assert 'a' <=> 'b' == -1
assert 'a' <=> 'a'​== 0
assert 'b' <=> 'a' == 1​​

Comparable.compareTo 메소드와 같습니다.

assert 10.compareTo(20) == (10 <=> 20)
assert 'a'.compareTo('b') == ('a' <=> 'b')

사용자 지정 정렬을위한 우주선 운영자

class User {
  String name
  int age
}

def users = [
  new User(name: "Bob", age: 20),
  new User(name: "Tom", age: 50),
  new User(name: "Bill", age: 45)
]

// sort by age
users.sort { a, b -> a.age <=> b.age }

Comparator 및 SortedSet 사용법

Comparator cmp = [ compare:{ a, b -> a <=> b } ] as Comparator
def col = [ 'aa', 'aa', 'nn', '00' ]
SortedSet sorted = new TreeSet( cmp )
sorted.addAll col
assert '[00, aa, nn]' == sorted.toString()


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow