diff --git a/lists/arraylist/arraylist.go b/lists/arraylist/arraylist.go index 41327bb..60ce458 100644 --- a/lists/arraylist/arraylist.go +++ b/lists/arraylist/arraylist.go @@ -82,8 +82,8 @@ func (list *List) Contains(values ...interface{}) bool { for _, searchValue := range values { found := false - for _, element := range list.elements { - if element == searchValue { + for index := 0; index < list.size; index++ { + if list.elements[index] == searchValue { found = true break } diff --git a/lists/arraylist/arraylist_test.go b/lists/arraylist/arraylist_test.go index d490ba7..3b7c8d7 100644 --- a/lists/arraylist/arraylist_test.go +++ b/lists/arraylist/arraylist_test.go @@ -164,6 +164,9 @@ func TestListContains(t *testing.T) { if actualValue := list.Contains("a"); actualValue != true { t.Errorf("Got %v expected %v", actualValue, true) } + if actualValue := list.Contains(nil); actualValue != false { + t.Errorf("Got %v expected %v", actualValue, false) + } if actualValue := list.Contains("a", "b", "c"); actualValue != true { t.Errorf("Got %v expected %v", actualValue, true) }