[SCALA] 어떻게 두 개의 필드로 스칼라의 목록을 정렬하려면?
SCALA어떻게 두 개의 필드로 스칼라의 목록을 정렬하려면?
어떻게 두 개의 필드로 스칼라의 목록을 정렬하려면이 예에서 나는이 lastName과 firstName을 기준으로 정렬 할 것인가?
case class Row(var firstName: String, var lastName: String, var city: String)
var rows = List(new Row("Oscar", "Wilde", "London"),
new Row("Otto", "Swift", "Berlin"),
new Row("Carl", "Swift", "Paris"),
new Row("Hans", "Swift", "Dublin"),
new Row("Hugo", "Swift", "Sligo"))
rows.sortBy(_.lastName)
이 같은 것들을 시도
rows.sortBy(_.lastName + _.firstName)
그러나 그것은 작동하지 않습니다. 나는 좋은 쉬운 솔루션에 대한 호기심 그래서.
해결법
-
==============================
1.
rows.sortBy(r => (r.lastName, r.firstName))
-
==============================
2.
rows.sortBy (row => row.lastName + row.firstName)
당신이 기준으로 정렬 할 경우 문제로, 이름을 합병, 또는
rows.sortBy (row => (row.lastName, row.firstName))
처음과 lastName으로 정렬 할 경우, 다음 firstName을; 긴 이름에 대한 관련 (와일드, 와일더, Wilderman).
당신이 작성하는 경우
rows.sortBy(_.lastName + _.firstName)
2 개 밑줄로,이 방법은 두 개의 파라미터를 기대 :
<console>:14: error: wrong number of parameters; expected = 1 rows.sortBy (_.lastName + _.firstName) ^
-
==============================
3.일반적으로, 당신이 안정적인 정렬 알고리즘을 사용하는 경우, 당신이 할 수있는 그저 한 후, 키, 다음으로.
일반적으로, 당신이 안정적인 정렬 알고리즘을 사용하는 경우, 당신이 할 수있는 그저 한 후, 키, 다음으로.
rows.sortBy(_.firstName).sortBy(_.lastName)
최종 결과는 그 FIRSTNAME하여, 다음과 같다 여기서, LASTNAME으로 분류한다.
-
==============================
4.아마도이 만 튜플의 목록을 위해 작동하지만
아마도이 만 튜플의 목록을 위해 작동하지만
scala> var zz = List((1, 0.1), (2, 0.5), (3, 0.6), (4, 0.3), (5, 0.1)) zz: List[(Int, Double)] = List((1,0.1), (2,0.5), (3,0.6), (4,0.3), (5,0.1)) scala> zz.sortBy( x => (-x._2, x._1)) res54: List[(Int, Double)] = List((3,0.6), (2,0.5), (4,0.3), (1,0.1), (5,0.1))
작업에 나타나고 그것을 표현하는 간단한 방법이 될 수.
from https://stackoverflow.com/questions/10027543/how-to-sort-a-list-in-scala-by-two-fields by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 형식 매개 변수에 대한 스칼라 classOf (0) | 2019.11.14 |
---|---|
[SCALA] 우분투 설치 SBT [폐쇄] (0) | 2019.11.14 |
[SCALA] 스칼라리스트를 java.util.List를 변환하는 방법 (0) | 2019.11.14 |
[SCALA] 스칼라에서 어떻게 여러 생성자와 자바 클래스를 서브 클래 싱 할 수 있습니까? (0) | 2019.11.14 |
[SCALA] 왜 피하고은 하위 유형? (0) | 2019.11.14 |