title: data structure for Graph in java
body: <p>i am looking to implement a algorithm for the Travel Salesman Problem. I want to model the solution using the <strong>graph</strong> , in this a <strong>vertex</strong> will represent a city and <strong>edge</strong> will represent the cost from one city to another.
  At any point i have to compute cost from one city to another like 
          (cityA, cityB)--->cost</p>
  
  <p>What data structure in java should i use for graph?</p>
  
  <p>And what kind of GUI tool or library can i use to represent a graph ?</p>