Advertisement
ZivkicaI

MapsInScala

Dec 2nd, 2019
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.50 KB | None | 0 0
  1. package part3Udemy
  2.  
  3. object TuplesAndMaps extends App {
  4.  
  5.   def add(network: Map[String, Set[String]] , person:String) : Map[String, Set[String]]=
  6.     network + (person -> Set())  //dodavanje nov chovek vo mrezata
  7.  
  8.   def friend(network: Map[String, Set[String]], a: String, b: String) : Map[String, Set[String]]={
  9.     val friendsA=network(a)
  10.     val friendsB=network(b)
  11.  
  12.     network + (a-> (friendsA +b)) + (b->(friendsB+a))    //dodavanje prijatel vo listata
  13.   }
  14.  
  15.   def unfriend(network: Map[String, Set[String]], a: String, b: String) : Map[String, Set[String]]={
  16.     val friendsA=network(a)
  17.     val friendsB=network(b)
  18.     network + (a-> (friendsA -b)) + (b->(friendsB-a))    //brishenje prijatel
  19.   }
  20.  
  21.   val empty: Map[String, Set[String]]= Map() //prazna mapa
  22.   val network=add(add(empty, "Bob"), "Mary") //dva add za da dodadam 2 lichnosti vo mrezata
  23.   println(network)
  24.   println(friend(network, "Bob", "Mary"))
  25.   println(unfriend(friend(network, "Bob", "Mary"), "Bob", "Mary"))
  26.  
  27.   //za tri lichnosti vo mrezata:
  28.  
  29.   val people=add(add(add(empty, "Bob"), "Mary"), "Jim")
  30.  
  31.   def nFriends(network: Map[String, Set[String]], person:String) : Int=
  32.     if(!network.contains(person)) 0
  33.     else network(person).size  //f-cija koja go vrakja brojot na prijarteli
  34.  
  35.   def nPeopleWithNoFriends(network: Map[String, Set[String]]): Int=
  36.     network.filterKeys(k => network(k).isEmpty).size   //f-cija koja kje gi vrati site lugje na koi listata so prijateli im e 0, i .size kje ni gi vrati kolku se
  37.  
  38.  
  39.  
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement