// Post: http://codely.tv/screencasts/finder-kata-scala/ // Repo: https://github.com/CodelyTV/incomprehensible-finder-refactoring-kata-scala package tv.codely.finderKata.algorithm import java.util import java.util.ArrayList import scala.collection.JavaConverters._ import tv.codely.finderKata.algorithm.FT.FT class Finder(private val _p: util.List[Thing]) { def Find(ft: FT): F = { val tr = new ArrayList[F]() for (i <- 0 until _p.size - 1; j <- i + 1 until _p.size) { val r: F = new F() if (_p.get(i).birthDate.getMillis < _p.get(j).birthDate.getMillis) { r.P1 = _p.get(i) r.P2 = _p.get(j) } else { r.P1 = _p.get(j) r.P2 = _p.get(i) } r.D = r.P2.birthDate.getMillis - r.P1.birthDate.getMillis tr.add(r) } if (tr.size < 1) { return new F() } var answer: F = tr.get(0) for (result: F <- tr.asScala) ft match { case FT.One => if (result.D < answer.D) { answer = result } case FT.Two => if (result.D > answer.D) { answer = result } } answer } }