[java] Structure ArrayList pour dictionnaire
Fermé
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
-
2 juin 2009 à 11:08
timon44 Messages postés 53 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 17 décembre 2010 - 2 juin 2009 à 20:03
timon44 Messages postés 53 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 17 décembre 2010 - 2 juin 2009 à 20:03
A voir également:
- [java] Structure ArrayList pour dictionnaire
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Java apk - Télécharger - Langages
- Télécharger dictionnaire médical larousse gratuit pdf - Télécharger - Dictionnaires & Langues
13 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 16:26
2 juin 2009 à 16:26
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()); } } }++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 11:42
2 juin 2009 à 11:42
Salut,
Le constructeur d'ArrayList te permet de spécifier un unique template et non pas 2. Exemple:
++
Le constructeur d'ArrayList te permet de spécifier un unique template et non pas 2. Exemple:
ArrayList<String> dico;
++
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 12:03
2 juin 2009 à 12:03
Et comment puis je faire, en utilisant arraylist ?
Parce que je voudrais faire un arraylist de couple(A,B) en fait ...
Parce que je voudrais faire un arraylist de couple(A,B) en fait ...
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 12:05
2 juin 2009 à 12:05
Tu crées un objet (ta classe à toi) pour garder les couples et tu insères dans l'ArrayList des instances de cet objet.
++
++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 12:38
2 juin 2009 à 12:38
ok , merci, donc voila ce que j'ai fait :
j'ai créer une classe mot : (Mot.java)
Pour la classe main :
et la classe de Dictionnaire :
Mais je sais pas comment rentrer mot/type dans l'arraylist dico ....
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 ....
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 12:53
2 juin 2009 à 12:53
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
Précise, donc, ce que tu veux vraiment faire...
++
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...
++
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 13:01
2 juin 2009 à 13:01
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....
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....
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 13:10
2 juin 2009 à 13:10
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")
++
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")
++
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 13:13
2 juin 2009 à 13:13
[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 =)
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 13:15
2 juin 2009 à 13:15
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 !!
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 18:41
2 juin 2009 à 18:41
alors, déjà un grand merci !! ^^
sinon je comprends pas cette boucle :
sinon je comprends pas cette boucle :
for (Mot mot : this) {
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
2 juin 2009 à 19:28
2 juin 2009 à 19:28
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)
++
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)
++
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 juin 2009 à 20:03
2 juin 2009 à 20:03
haaa d'accord, je ne savais que l'on pouvait faire comme ça !