20 Other Collection Types

20.1 The scala.collection Packages
    20.1.1 scala.collection.immutable
    20.1.2 scala.collection.mutable
20.2 Sets
    20.2.1 Running Through Sets
    20.2.2 Mutable vs. Immutable
    20.2.3 Using a Set
20.3 Maps
    20.3.1 Looping Through a Map
    20.3.2 Using Maps
20.4 Buffers
20.5 Collections as Functions
20.6 Project Integration
    20.6.1 Commands
    20.6.2 Adding Drawables

Additional Online Exercises:

O1. JSON Parsing: Many different web APIs using the JSON (JavaScript Object Notation) format instead of XML. An example of this is Twitter. Unfortunately, Twitter has changed their API to require authentication so pulling data from Twitter goes beyond the scope of an exercise. The Scala API provides a mechanism for parsing JSON data using the parser libraries. We will return to these in chapter 30. For now they provide an interesting example of other collections that you can play with in the REPL or a little program. You should import "util.parsing.json._" then you can parse JSON strings using JSON.parseFull(str:String). Try it with the following JSON strings. Note that because they include double quotes you probably want to use raw strings (with """).

[1, 2, 3]
{ "a" : 5, "b" : "hi"}
{ "a" : [1, 2 , { "c" : "testing", "d" : "objects" }], "b" : 42}

For this exercise you should write code that goes into the return value to get out different parts of it. Using a match expression and patterns can be very helpful here. You might try to write a function that takes an argument that is a string for a name and returns the values associated with that name that are nested in the JSON.