The simple solution:
scala> val x = List(1,2,2,3,4,4,5,5)
x: List[Int] = List(1, 2, 2, 3, 4, 4, 5, 5)
scala> x.removeDuplicates
res0: List[Int] = List(1, 2, 3, 4, 5)
For the curious under the hood:
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer
scala> def myRemoveDuplicates[T](in:List[T]):List[T] = {
| val b = new ListBuffer[T]
| var temp = in
| while(!temp.isEmpty){
| if(!temp.tail.contains(temp.head)) b+=temp.head
| temp = temp.tail
| }
| b.toList
| }
myRemoveDuplicates: [T](in: List[T])List[T]
scala> myRemoveDuplicates(x)
res2: List[Int] = List(1, 2, 3, 4, 5)
My thoughts on tackling IT complexity by breaking it into atomic components. and I term it lego oriented solution, LOS for short.
Thursday, October 8, 2009
Subscribe to:
Post Comments (Atom)
Blog Archive
-
▼
2009
(13)
-
▼
October
(13)
- P12: Decode run-length encoding
- P11: Modified run-length encoding that includes on...
- Installing Eclipse, Scala and Groovy in Windows 7
- P10: Run-length encoding of a list.
- P09: Pack consecutive duplicates of list elements...
- P08: Eliminate consecutive duplicates of list elem...
- P07: Flatten a list
- P06: Is a list palindrome
- P03 - P05: Find nth element, length, reverse a list
- How to simply sum values in a Map in Scala
- Best Note Taking Tools
- P02: Find the last but one element of a list.
- Over all these years of Software development, I ca...
-
▼
October
(13)
No comments:
Post a Comment