스칼라 2.8을 사용하는 경우 SeqLike
특성에서 상속 된 ArrayBuffer[T]
클래스의 sortWith
메서드를 사용할 수 있습니다.
다음 코드는 오름차순의 ArrayBuffer[T]
객체 정렬이 실제 ArrayBuffer
를 변이하지 않는
def ascendingSort[T <% Ordered[T]](xs: ArrayBuffer[T]) = xs.sortWith(_ < _)
참고하지만, 올바른 순서의 요소와 새로 만듭니다.
스칼라 2.7을 사용하는 경우 Sorting
개체의 stableSort
메서드를 사용할 수 있습니다. 이것은 ArrayBuffer
의 요소를 취해 올바른 순서로 정렬 된 요소 배열을 생성합니다 (인수로 클로저가 지정되고 기본값으로 오름차순). 예를 들어
:
val a = new scala.collection.mutable.ArrayBuffer[Int]()
a += 5
a += 2
a += 3
scala.util.Sorting.stableSort(a)
중요한 질문은 당신이 ArrayBuffer
으로 수행 할 작업 것입니다. 일반적으로 Buffer
은 다른 알고리즘에서 내부적으로 사용되어 중간 결과의 성능을 향상시킵니다. 이를 위해 사용하는 경우 알고리즘의 끝에서 반환 할 컬렉션을 정렬하는 방법을 살펴보십시오. Sorting
개체는 이미 ArrayBuffer
을 정렬 된 Array
으로 변환하는 방법을 제공합니다. 버퍼가 점진적으로
당신이 Actor
의 함께 사용되기 때문에, 그것은 어떤 종류의에 사용될 수있는 요소의 시퀀스를 생성하는
을 사용하십시오 Buffer
클래스의 scaladoc에서
액터 대기열 -이 경우
Queue
컬렉션을 살펴볼 수 있습니다. Flaviu Cipcigan
는, 내가 ArrayBuffer를 변이 것이 바로 그래서이 sortWith (...)를 생각 설명을 읽어 didnt한다. 감사합니다 10 억, 빠른 답변도 존중합니다.) – Felix