Attualmente sto imparando l'API di Java Collections e sento di avere una buona conoscenza delle basi, ma non ho mai capito perché questa API standard non include un'implementazione Graph. Le tre classi base sono facilmente comprensibili (Elenco, Set e Mappa) e tutte le loro implementazioni nell'API sono per lo più semplici e coerenti.Perché l'API delle raccolte Java non include un'implementazione del grafico?
Considerando la frequenza con cui i grafici si presentano come un modo potenziale per modellare un determinato problema, questo non ha senso per me (è possibile che esista nell'API e non sto cercando nel posto giusto, naturalmente). Steve Yegge suggerisce in uno dei suoi post sul blog che un programmatore dovrebbe considerare i grafici prima di attaccare un problema, e se il dominio del problema non si adatta naturalmente a questa struttura di dati, solo allora si considerano le strutture alternative.
La mia prima ipotesi è che non esiste un modo universale per rappresentare i grafici o che le loro interfacce potrebbero non essere abbastanza generiche da rendere utile l'implementazione dell'API? Ma se si riduce a un grafico i suoi componenti di base (vertici e un insieme di bordi che collegano alcuni o tutti i vertici) e si considerano i modi in cui i grafici sono comunemente costruiti (metodi come addVertex (v) e insertEdge (v1, v2)) sembra che una generica implementazione del grafico sarebbe possibile e utile.
Grazie per avermi aiutato a capire meglio.
L'API Java è piena di buchi. Non c'è bisogno di essere un motivo per loro. – skaffman
L'API Java SE fornisce solo un'API * basic * da sviluppare ulteriormente. Ecco perché esistono API "di terze parti" più specifiche/convenienti che puoi semplicemente utilizzare sopra l'API di Java SE. – BalusC