2017-10-10 6 views
0

J'ai un fichier de données de type tableur (tabulé .txt) qui doit être lu par le programme Java et stocker les valeurs dans une structure de données. Ces données représentent le chemin le plus court entre deux villes et sont remplies d'un tiret (-) si le chemin n'existe pas. Quelle structure de données servirait un bon but dans le stockage de ces valeurs pour d'autres comparaisons dans le programme; principalement pour un algorithme de recherche? En outre, je voudrais imprimer les villes énumérées dans la première colonne dans une interface graphique simple comme un bouton déroulant qui permet à l'utilisateur de choisir une ville? Seule la ligne de code pour imprimer les villes en extrayant serait bonne. Et, voici comment le fichier de données ressemble:Stockage de données de type tableur d'un fichier vers une structure de données en Java

  Port Col Minn Cali Flo 
Portland - 30 - 22 - 
Colorado 15 17 5 - - 
Minnesota 11 15 22 13 - 
California 8 - 9 - - 
Florida  11 - - 22 - 

Puisque c'est un fichier .txt délimité par des tabulations, il ne semble pas parfait.

+1

Qu'est-ce que les données vont être utilisées pour? Il peut être plus facile de le conserver en tant que Strings si vous l'imprimez simplement, mais si vous l'utilisez en interne, un tableau ou une liste peut aider – phflack

+0

Je considérerais quelque chose comme un 'Map > '; vous pourriez vouloir envelopper dans votre propre classe pour le rendre plus facile à utiliser. Mais, comme indiqué, cela dépend de la façon dont vous allez l'utiliser. –

+0

@James_D pouvez-vous élaborer brièvement sur votre idée? –

Répondre

0

Pour lire le fichier je préfère le renommer en .csv et utiliser un des lecteurs csv standard. Vous pouvez généralement les configurer pour utiliser d'autres délimiteurs, y compris les onglets. Cela vous donnera une structure semblable à une feuille de calcul en mémoire. Vous serez en mesure d'obtenir la liste des en-têtes (villes) et la structure de carte avec des distances pour chaque ville.

Cette approche est un peu moins codante et plus lisible, mais c'est ce que le vrai travail finit souvent par être, donc c'est une bonne pratique si vous pouvez le gérer.

exemple bibliothèques CSV:

https://commons.apache.org/proper/commons-csv/

http://opencsv.sourceforge.net/

+1

pas besoin de renommer quoi que ce soit ... c'est le format de stockage qui compte pas l'extension de fichier ... – kleopatra

+0

Vous avez raison. La plupart des bibliothèques ne se soucient pas de l'extension. Je voulais juste être clair que je veux traiter le fichier comme un format de données de type CSV. –