4
import scala.collection.mutable.MutableList
8
class ExtList[T] extends MutableList[T] {
10
println("Length: " + len)
11
println("Last elem: " + last0.elem)
12
println("First elem: " + first0.elem)
13
println("After first elem: " + first0.next.elem)
14
println("After first: " + first0.next)
15
println("Last: " + last0)
21
def main(args: Array[String]) {
30
val mlist = new MutableList[Int]
32
assert(mlist.get(0) == None)
36
val mlist = new MutableList[Int]
38
assert(mlist.nonEmpty)
39
assert(mlist.length == 1)
40
assert(mlist.head == 17)
41
assert(mlist.last == 17)
42
assert(mlist(0) == 17)
43
assert(mlist.tail.isEmpty)
44
assert(mlist.tail.length == 0)
46
assert(mlist(0) == 101)
47
assert(mlist.toList == List(101))
48
assert(mlist.tail.get(0) == None)
49
assert((mlist.tail += 19).head == 19)
50
assert(mlist.tail.length == 0)
53
def testAddFewElements {
54
val mlist = new MutableList[Int]
55
for (i <- 0 until 2) mlist += i
57
for (i <- 0 until 2) assert(mlist(i) == i)
58
assert(mlist.length == 2)
59
assert(mlist.nonEmpty)
60
assert(mlist.tail.length == 1)
61
assert(mlist.tail.tail.length == 0)
62
assert(mlist.tail.tail.isEmpty)
65
def testAddMoreElements {
66
val mlist = new MutableList[Int]
67
for (i <- 0 until 10) mlist += i * i
68
assert(mlist.nonEmpty)
69
assert(mlist.length == 10)
70
for (i <- 0 until 10) assert(mlist(i) == i * i)
71
assert(mlist(5) == 5 * 5)
72
assert(mlist(9) == 9 * 9)
74
for (i <- 0 until 10) {
75
assert(sometail.head == i * i)
76
sometail = sometail.tail
79
assert(mlist(5) == -25)
81
assert(mlist(0) == -1)
83
assert(mlist(9) == -81)
84
assert(mlist(5) == -25)
85
assert(mlist(0) == -1)
86
assert(mlist.last == -81)
90
assert(mlist.head == 1001)
92
assert(mlist.tail.head == 9999)
93
assert(mlist.last == 9999)
96
def testTraversables {
97
val mlist = new MutableList[Int]
98
for (i <- 0 until 10) mlist += i * i
99
var lst = mlist.drop(5)
100
for (i <- 0 until 5) assert(lst(i) == (i + 5) * (i + 5))
102
for (i <- 0 until 3) assert(lst(i) == (i + 5) * (i + 5))
104
assert(lst(3) == 129)
105
assert(lst.last == 129)
106
assert(lst.length == 4)
108
assert(lst.init.last == 129)
109
assert(lst.length == 5)
111
assert(lst.length == 0)
112
for (i <- 0 until 5) lst += i
113
assert(lst.reduceLeft(_ + _) == 10)
4
import scala.collection.mutable.MutableList
8
class ExtList[T] extends MutableList[T] {
10
println("Length: " + len)
11
println("Last elem: " + last0.elem)
12
println("First elem: " + first0.elem)
13
println("After first elem: " + first0.next.elem)
14
println("After first: " + first0.next)
15
println("Last: " + last0)
21
def main(args: Array[String]) {
30
val mlist = new MutableList[Int]
32
assert(mlist.get(0) == None)
36
val mlist = new MutableList[Int]
38
assert(mlist.nonEmpty)
39
assert(mlist.length == 1)
40
assert(mlist.head == 17)
41
assert(mlist.last == 17)
42
assert(mlist(0) == 17)
43
assert(mlist.tail.isEmpty)
44
assert(mlist.tail.length == 0)
46
assert(mlist(0) == 101)
47
assert(mlist.toList == List(101))
48
assert(mlist.tail.get(0) == None)
49
assert((mlist.tail += 19).head == 19)
50
assert(mlist.tail.length == 0)
53
def testAddFewElements {
54
val mlist = new MutableList[Int]
55
for (i <- 0 until 2) mlist += i
57
for (i <- 0 until 2) assert(mlist(i) == i)
58
assert(mlist.length == 2)
59
assert(mlist.nonEmpty)
60
assert(mlist.tail.length == 1)
61
assert(mlist.tail.tail.length == 0)
62
assert(mlist.tail.tail.isEmpty)
65
def testAddMoreElements {
66
val mlist = new MutableList[Int]
67
for (i <- 0 until 10) mlist += i * i
68
assert(mlist.nonEmpty)
69
assert(mlist.length == 10)
70
for (i <- 0 until 10) assert(mlist(i) == i * i)
71
assert(mlist(5) == 5 * 5)
72
assert(mlist(9) == 9 * 9)
74
for (i <- 0 until 10) {
75
assert(sometail.head == i * i)
76
sometail = sometail.tail
79
assert(mlist(5) == -25)
81
assert(mlist(0) == -1)
83
assert(mlist(9) == -81)
84
assert(mlist(5) == -25)
85
assert(mlist(0) == -1)
86
assert(mlist.last == -81)
90
assert(mlist.head == 1001)
92
assert(mlist.tail.head == 9999)
93
assert(mlist.last == 9999)
96
def testTraversables {
97
val mlist = new MutableList[Int]
98
for (i <- 0 until 10) mlist += i * i
99
var lst = mlist.drop(5)
100
for (i <- 0 until 5) assert(lst(i) == (i + 5) * (i + 5))
102
for (i <- 0 until 3) assert(lst(i) == (i + 5) * (i + 5))
104
assert(lst(3) == 129)
105
assert(lst.last == 129)
106
assert(lst.length == 4)
108
assert(lst.init.last == 129)
109
assert(lst.length == 5)
111
assert(lst.length == 0)
112
for (i <- 0 until 5) lst += i
113
assert(lst.reduceLeft(_ + _) == 10)