Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Lists and Arrays and Methods2-17-2012Opening DiscussionDo you have any questions about the quiz?Minute essay comments:Other collection types.Gandalf vs. DumbledoreApproaching problems.Difference between recursion and loops.Cutting a Double to a number of digits.Do you need to improve your recursive methods?Not knowing what to ask.Infinite arrays or undefined length?MoreTA? Kristen LundAnti-virus recommendation.Array size limit?Filling an array with user input.Grading assignments.Heterogeneous arrays and lists.Default case for match.Cyber-attack of automated cars.Lab hours on weekends.Recap Arrays and ListsCreationArray(5,7,4)List(8,5,3)new Array[Double](1000)1::2::3::NilComparisonArrays: mutable, fixed size.Lists: immutable, :: to make new, longer listIndexing: start at 0arr(5), arr(5)=”hi”Using ListsYou can do direct access on lists, but it is inefficient.The better method is to use the head and tail methods.The elements in a list can't be changed. However, you can efficiently add new elements at the front to make a new list.Lists work very well with recursion.List and Array PatternsYou can make patterns with Lists and Arrays.For Arrays:Array(1,2,a,b,c)For Lists:List(1,2,a,b,c)h::t - matches any non-empty listNil - matches an empty listStandard MethodsThere are lots of methods on collections. The API can help us see all of them.Part of collections: drop, init, last, slice, splitAt, take, takeRightBoolean tests: contains, endsWith, isEmpty, nonEmpty, startsWithSearching: indexOf, lastIndexOfOther: mkString, reverse, zip, zipWithIndexOther MethodsIf the elements in a list support addition or multiplication, you can use the sum and product methods.If they are ordered you can do min and max.Having sum and length makes averages really easy.With min you can even drop a grade easily.Higher Order MethodsThe most powerful methods are ones you can pass functions into.exists, forall – Boolean checks like for math.filter, partition – separate collection based on Boolean.map – apply function to all the elements.reduceLeft – apply function moving through collectionfoldLeft – apply function moving through, but allows initial value so it can return a different type. This is curried.Let's Put These Into ActionI want to spend the rest of the class time playing with these methods and seeing what we can do with them.A String is a collection so you can do these things with a String as well.String also has a method called split.Minute EssayWhat questions do you have? What collection method made the least
View Full Document