Având în vedere o listă de liste, în care fiecare listă are un obiect care reprezintă cheia, trebuie să scriu o îmbinare exterioară completă care combină toate listele. Fiecare înregistrare din lista rezultată este o combinație a tuturor câmpurilor tuturor listelor. În cazul în care o cheie este prezentă în lista 1 și nu este prezentă în lista 2, atunci câmpurile din lista 2 ar trebui să fie nule sau goale.
O soluție la care m-am gândit este să încorporez o bază de date în memorie, să creez tabelele, să rulez un select și să obțin rezultatul. Cu toate acestea, aș dori să știu dacă există biblioteci care gestionează acest lucru într-un mod mai simplu. Vreo idee?
De exemplu, să presupunem că am două liste, unde cheia este primul câmp din listă:
val list1 = List ((1,2), (3,4), (5,6))
val list2 = List ((1,"A"), (7,"B"))
val allLists = List (list1, list2)
Lista completă exterioară unită ar fi:
val allListsJoined = List ((1,2,"A"), (3,4,None), (5,6,None), (7,None,"B"))
NOTĂ: soluția trebuie să funcționeze pentru N liste
groupBy(_._1)
- person Euge   schedule 09.04.2018