Skip to content

Instantly share code, notes, and snippets.

@lrlucena
Created April 26, 2016 19:23
Show Gist options
  • Save lrlucena/83faa759f41f3202c659a1481eed48c5 to your computer and use it in GitHub Desktop.
Save lrlucena/83faa759f41f3202c659a1481eed48c5 to your computer and use it in GitHub Desktop.
import scala.collection.mutable.Buffer
class Contato(
var nome: String,
var email: String,
var telefone: Map[String, String],
var cidade: String = "") {
}
class Agenda() {
val contatos = Buffer[Contato]()
def inserir(contato: Contato) = contatos.append(contato)
def remover(n: Int) = contatos.remove(n)
def porCidade(s: String) = contatos.filter { x => x.cidade == s }
def porNome(s: String) = contatos.filter { x => x.nome.startsWith(s) }
def ordenadoPorNome = contatos.sortBy { x => x.nome }
def ordenadoPorCidade = contatos.sortBy { x => x.cidade }
def ordenado(f: Contato => String) = contatos.sortBy { f }
}
object Agenda extends App {
val joao = new Contato("Joao", "",
Map("casa" -> "12345", "celular" -> "9999"), "")
// joao.nome = "Joao"
joao.telefone = Map("casa" -> "2332") ++ joao.telefone
val agenda = new Agenda()
agenda.inserir(joao)
println(joao.telefone("casa"))
agenda.ordenado { x => x.email }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment