제목이 부족하여 죄송합니다. 나는 더 나은 것을 생각할 수 없었다. 당신이 그것을 생각한다면 편집하십시오.Scala에서 이와 같은 작업을 수행하는 방법은 무엇입니까?
두 개의 List
개의 객체가 있고 항상 변경되고 있다고 가정 해 보겠습니다. 그들은 별개의 목록으로 남을 필요가 있지만 많은 작업은 양쪽 모두에서 수행되어야합니다. 이것은 다음과 같은 일을하게합니다 :
//assuming A and B are the lists
A.foo(params)
B.foo(params)
다른 말로하면, 제 코드의 많은 곳에서 두 개의 서로 다른 목록에 똑같은 연산을하고 있습니다. 명시 적으로 다른 목록을 작성하지 않고도 한 목록으로 줄이는 방법을 원합니다. 나는리스트 A
과 b
을리스트로 합치는 것만으로도 모든 문제를 해결할 수 있지만 목록에 새 객체를 추가해야한다면 동일한 작업으로 돌아갈 수 있습니다. (왜냐하면 추가해야 할 것이기 때문입니다. 그것을 C
및 해당 목록으로).
성능이 매우 중요합니다. A
을 반복하고 반복적으로 B
으로 이동하는 반복기 또는 무언가를 만들 수있는 방법이 있습니까? 나는 또 다른 해결책이 조합 목록 (C
)을 만들 때마다이 목록 둘 다에서 어떤 종류의 기능을 수행하고자 할 때마다 알지만 시간 낭비라고 할 수 있습니다.
사소한 수정. iterator를 얻으려면 : (l1.elements ++ l2.elements). OP가 분명히 원하는 것처럼 Iterator 솔루션은 변경 가능 목록과 함께 사용할 수 없습니다. 또한 Scala 라이브러리의 Iterator는 한 번만 사용하는 것으로 보입니다. 되감기해서 다시 사용할 수 없습니다. 그러나, upvoting 원인, 반복기는 여기에 갈 수있는 방법이지만, 아마 scala 라이브러리 버전이 아닙니다. – HRJ
감사합니다. HRJ의 아이디어 (요소)를 사용했습니다. – ryeguy
@HRJ @ryeguy 그래서 foreach 문 다음에 오는 주석은 ;-) List.elements는 Scala 2.8.0에서 더 이상 사용되지 않습니다. 대신 iterator를 사용하십시오. –