Salve a tutti,

avrei la necessità di trovare una struttura dati che risponda alle seguenti esigenze.

Dovrei memorizzare, per ogni elemento (chiamato Job) un insieme di stringhe (chiamate "tag"). Ogni job è referenziato univocamente da un proprio jobID, di tipo int.

Dovrei memorizzare una struttura del tipo

12345 --> tag1 tag2 tag3
12357 --> tag2 tag3
42342 --> tag1 tag2 tag6 tag7
52411 --> tag2 tag5 tag5

dove, sulla prima colonna, abbiamo gli integer.

In particolare a partire da questa struttura le informazioni che dovrei successivamente estrarre sono:

ricerca
1. Dato un jobID, l'elenco dei tag ad esso associati (come List<String>)
2. Dato un tag, i JobID in cui esso compare. (come List<Integer>)

inserimento
1. Dato un insieme di tag (come List<String>) aggiungere questi tag ad un certo job (magari evitando ridondanze)

Quale struttura potrebbe agevolare l'implementazione di queste funzionalità ?

Scusata la banalità della domanda, ma sono nuovo al linguaggio Java.

Ciao e grazie,

Alessandro