2011-05-11 2 views
0

Je connais un peu le php. et java beaucoup peu.Multidimensional Arrays pour stocker plusieurs types de données

Je crée une petite application pour rechercher un texte dans une zone de texte et stocker le résultat dans un tableau.

Le tableau en PHP ressemblera à ceci.

array(
    "searchedText" => "The text that is searched", 
    "positionsFound" => array(12,25,26,......), 
    "frequencies" => 23 //This is total words found divided by total words 
); 

Mais, Java ne supporte pas les tableaux avec plusieurs types de données. Dans le tableau ci-dessus, seul le second élément "positionFound" est de longueur variable.

Plus tard, je dois parcourir ce tableau et créer un fichier incluant tous les éléments mentionnés ci-dessus.

Veuillez me guider

+0

Puis-je suggérer que vous prenez le temps de lire le tutoriel Sun Java à partir de la page "Nouveau Java" - http : //www.oracle.com/technetwork/topics/newtojava/new2java-141543.html. À long terme, cela vous épargnera beaucoup de douleur ... –

Répondre

3

Java prend en charge les objets. Vous devez définir une classe comme

class MyData { 
    String searchedText; 
    Set<Integer> positionsFound; 
    int frequencies; 
} 

List<MyData> myDataList = new ArrayList<MyData>(); 
// OR 
MyData[] myDataArray = new MyData[number]; 

Et vous pouvez utiliser cette structure pour stocker vos données. Il existe d'autres méthodes utiles telles que constructors et toString() et je vous suggère d'utiliser votre IDE pour les générer. Lorsque vous écrivez ces données dans un fichier, vous pouvez trouver un format naturel JSon à utiliser.


Je vous suggère de regarder GSon qui est une belle bibliothèque JSON.

De la documentation GSon, voici un exemple

class BagOfPrimitives { 
    private int value1 = 1; 
    private String value2 = "abc"; 
    private transient int value3 = 3; 
    BagOfPrimitives() { 
    // no-args constructor 
    } 
} 

(sérialisation)

BagOfPrimitives obj = new BagOfPrimitives(); 
Gson gson = new Gson(); 
String json = gson.toJson(obj); 

==> JSON est { "valeur1": 1, "valeur2": "abc"}

Notez que vous ne pouvez pas sérialiser des objets avec des références circulaires car cela entraînera une récursion infinie.

(Désérialisation)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class); 

==> obj2 est comme obj

+0

+1 pour être plus rapide – Thomas

+2

Vous devriez ajouter le tableau externe qui serait alors similaire à 'MyData [] myData'. – Thomas

+0

Quel package est défini? C'est donner ne peut pas trouver l'erreur de symbole – mrN

Questions connexes