Rechercher : dans
Par :

[java] Structure ArrayList pour dictionnaire

Dernière réponse le 2 jun 2009 à 20:03:00 timon44, le 2 jun 2009 à 11:08:54 
 Signaler ce message aux modérateurs

Bonjour, je cherche à créer un genre de dictionnaire.

Je voudrais associer le type du mot, avec le mot par exemple, pour le mot "faire" associer "v" pour verbe.
Bon je commence juste, et voila ce que j'ai fait :

import java.util.*;

public class Dictionnaire {

		char type;
		String mot;

		/* constructeur */
		public Dictionnaire (char type, String mot) {
			
			ArrayList<char,String> dico;
			Dictionnaire(){dico = new ArrayList<char,String>();}

			
			
		}


Mais le char est souligné ("Syntax error on token "char", Dimensions expected after this token")
Configuration: Windows XP
Firefox 3.0.10


sinon ce que je pensais faire c'est quelque chose comme ça :
			String tab[]= new String[2];
            ArrayList dico = new ArrayList();
            dico.add(tab["verbe","faire"]);

Mais je ne sais pas comment l'implémenter...

Meilleures réponses pour « [java] Structure ArrayList pour dictionnaire » dans :
Dictionnaire pour téléphones mobiles supportant Java Voir JLearnItME est une application gratuite pour téléphone mobile permettant d'avoir un dictionnaire comprenant 15 langues. La seule condition que doit remplir votre téléphone est de supporter le Java. L'interface utilisateur est...
Utiliser un dictionnaire sous OpenOffice VoirActivation de la correction orthographique - OpenOffice.org Par défaut, la correction orthographique de OpenOffice.org ne fonctionne pas car aucun dictionnaire n'est présent. L'installation dépendra de la connexion à Internet. il faut avant...
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java: Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
Oracle - Le dictionnaire de données VoirPrésentation du dictionnaire de données Oracle Le dictionnaire de données Oracle représente le coeur de la base de données. Il s'agit d'un ensemble de tables systèmes contenant les informations relatives à la structure de la base de...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...

1

sandul, le 2 jun 2009 à 11:42:37

Salut,

Le constructeur d'ArrayList te permet de spécifier un unique template et non pas 2. Exemple:

ArrayList<String> dico;

++

Répondre à sandul

2

timon44, le 2 jun 2009 à 12:03:42

Et comment puis je faire, en utilisant arraylist ?
Parce que je voudrais faire un arraylist de couple(A,B) en fait ...

Répondre à timon44

3

sandul, le 2 jun 2009 à 12:05:19

Tu crées un objet (ta classe à toi) pour garder les couples et tu insères dans l'ArrayList des instances de cet objet.

++

Répondre à sandul

4

timon44, le 2 jun 2009 à 12:38:06

Ok , merci, donc voila ce que j'ai fait :

j'ai créer une classe mot : (Mot.java)

public class Mot {
	
	String type;
	String mot;
	
	/* constructeur*/
	public Mot (){
		type="verbe";
		mot="faire";
	}
	
	public Mot(String pType, String pMot){
	
		type=pType;
		mot=pMot;
		
	}
	
	
}


Pour la classe main :
import java.util.ArrayList;
import java.util.Scanner;


public class Utilisatrice {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		Mot def = new Mot();
		Dictionnaire dico = new Dictionnaire();
		
		System.out.print("Mot: ");
		Scanner scanMot = new Scanner(System.in);
		String mot = scanMot.nextLine();
		
		System.out.println("Type: ");
		Scanner scanType = new Scanner(System.in);
		String type = scanType.nextLine();
		
		
	}

}


et la classe de Dictionnaire :
import java.util.ArrayList;
import java.util.Scanner;


public class Utilisatrice {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		
		Mot def = new Mot();
		Dictionnaire dico = new Dictionnaire();
		
		System.out.print("Mot: ");
		Scanner scanMot = new Scanner(System.in);
		String mot = scanMot.nextLine();
		
		System.out.println("Type: ");
		Scanner scanType = new Scanner(System.in);
		String type = scanType.nextLine();
		
		
	}

}


Mais je sais pas comment rentrer mot/type dans l'arraylist dico ....

Répondre à timon44

5

sandul, le 2 jun 2009 à 12:53:20

Heuuu... Il faudrait décrire un peu plus ce que tu veux faire car le simple fait d'associer un mot à son type peut se faire de manière très simple en utilisant des classes existantes. Pas besoin de réinventer la roue... Exemple

import java.util.HashMap;
import java.util.Map;

public class Timon44 {
	public static void main(String[] args) {
		Map<String, String> map = new HashMap<String, String>();
		map.put("ceci", "pron dem");
		map.put("est", "v");
		map.put("un", "art");
		map.put("exemple", "nom");

		for (String key : map.keySet()) {
			System.out.println(key + "==>" + map.get(key));
		}
	}
}
A l'exécution, on a ceci:
exemple==>nom
est==>v
un==>art
ceci==>pron dem


Précise, donc, ce que tu veux vraiment faire...

++

Répondre à sandul

6

timon44, le 2 jun 2009 à 13:01:14

Alors en fait, je veux faire plusieurs méthodes :
test si dico contient le mot, ajouter un mot au dico, supprimer un mot, donner le type d'un mot (donc rechercher si le mot existe, et retourner son type)

En fait c'est un exo que je fais pour réviser pour mon examen ... et j'ai vraiment du mal en java. J'ai lu tout le tuto du siteduzero (enfin pas tout jusqu'à la fin, il y a des choses pas au programme)
Et je dois faire l'implementation d'un dico, en arraylist, et en table de hashage ... et comparer les deux.
Donc pour l'instant je fait en arraylist....

Répondre à timon44

7

sandul, le 2 jun 2009 à 13:10:33

Alors en fait, je veux faire plusieurs méthodes :
test si dico contient le mot, ajouter un mot au dico, supprimer un mot, donner le type d'un mot (donc rechercher si le mot existe, et retourner son type)
==>

C'est OK, ça existe déjà (interface Map, diverses implémentations, e.g. HashMap):

test si dico contient le mot "ex" ==> méthode map.get("ex") // retourne null si pas de mot dans map
ajouter un mot au dico ==> map.put(mot, type_mot)
supprimer un mot ==> map.remove(mot)
donner le type d'un mot ==> map.get("ex")

++

Répondre à sandul

8

sandul, le 2 jun 2009 à 13:13:07

[Edit] Pardon, pas capté qu'il s'agissait d'un exo... Et donc que tu veux absolument travailler avec un ArrayList. Vais me repencher sur cette question après le déjeuner =)

Répondre à sandul

9

timon44, le 2 jun 2009 à 13:15:09

Ok, jte remercie beaucoup, de toute maniére, je vais aussi bosser sur hashmap, donc ce que tu m'as dis mesera surement trés utile !!

Répondre à timon44

10

sandul, le 2 jun 2009 à 16:26:57

Oki, voici un exemple où l'on travaille avec un ArrayList pour stocker les paires:

import java.util.ArrayList;

public class Timon44 {
	private static class Mot {
		private String mot;
		private String type;

		public Mot(String mot, String type) {
			this.mot = mot;
			this.type = type;
		}

		public String getMot() {
			return mot;
		}

		public void setMot(String mot) {
			this.mot = mot;
		}

		public String getType() {
			return type;
		}

		public void setType(String type) {
			this.type = type;
		}
	}

	private static class Dico extends ArrayList<Mot> {
		public String getType(String key) {
			for (Mot mot : this) {
				if (mot.getMot().equals(key)) {
					return mot.getType();
				}
			}
			return null;
		}
	}

	public static void main(String[] args) {
		Dico dico = new Dico();

		// Comme notre classe Dico hérite d'ArrayList, utiliser une fonction de rajout déjà définie
		dico.add(new Mot("ceci", "pron. dém"));
		dico.add(new Mot("est", "vb."));
		dico.add(new Mot("un", "art."));
		dico.add(new Mot("exemple", "nom"));

		// Est-ce qu'un mot se trouve dans le dico ?
		System.out.println("Le mot 'wizz' dans le dico ? " + (dico.getType("wizz") != null));

		// Lister tous les mots du dico
		for (Mot mot : dico) {
			System.out.println(mot.getMot() + "==>" + mot.getType());
		}
	}
}
++

Répondre à sandul

11

timon44, le 2 jun 2009 à 18:41:31

Alors, déjà un grand merci !! ^^
sinon je comprends pas cette boucle :

for (Mot mot : this) {

Répondre à timon44

12

sandul, le 2 jun 2009 à 19:28:22

Sinon je comprends cette boucle : <== tu veux dire que tu ne comprends pas?

for (Mot mot : this) {
signifie: itère sur l'ensemble des éléments de this (qui est un Dico, donc un ArrayList, on peut donc itérer dessus)

++

Répondre à sandul

13

 timon44, le 2 jun 2009 à 20:03:00

Haaa d'accord, je ne savais que l'on pouvait faire comme ça !

Répondre à timon44