Lecture overview -- Keyboard shortcut: 'u'  Previous page: Interfacet Set -- Keyboard shortcut: 'p'  Next page: Klasserne HashSet og TreeSet -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 6 : 35
Forelæsningsnoter i Objekt-orienteret Programmering
Collections og streams
Klassiske mængedeoperationer

Vi ser her på, hvordan man kan realisere nogle af de klassiske mængde operationer ved brug af operationerne i interfacet Set

Interfacet Set indeholder ikke direkte de klassiske mængde operationer, såsom foreningsmængde, delmængde, og fællesmængde

Der kan dog anvises idiomer ved brug af hvilke, disse operationer kan realiseres

Nogle af disse idiomer giver destruktive operationer

  • Idiomer som modsvarer de mest almindelige operationer på mængder:

    • Foreningsmængde:

      • s1.addAll(s2)

    • Fællesmængde:

      • s1.retainAll(s2)

    • Delmængde:

      • s1.containsAll(s2)

    • Mængdedifferens:

      • s1.removeAll(s2)

Operationerne addAll, retainAll og removeAll ændrer på modtager objektets indhold. Vi kan sige, at resultatet af operationen overskriver s1 i eksemplerne. Dette er nok ikke altid det vi ønsker. Hvis ikke, skal vi sørge for at kopiere s1 inden vi kalder mængde operationen:

  • Set result = new HashSet(s1); result.addAll(s2)
Ovenstående viser hvordan vi putter foreningsmængden af s1 og s2 i mængden result, der skabes som en kopi af s1 ved brug af den constructor, der tager en Collection som parameter.