Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1805 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Remplir une map en java selon une logique donnee

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplir une map en java selon une logique donnee

n°2258092
ahmadou_20
Posté le 14-05-2015 à 00:00:26  profilanswer
 

Bonjour les amis,  
 
Je suis un peu débutant avec Java et j auris besoin de votre aide!!
 
J'ai un object  
 

Code :
  1. public class Object{
  2. int first;
  3. int second;
  4. public Object(int first, int second){
  5. this.first = first;
  6. this.second = second;
  7. }
  8. }


 
J'aimerais peupler une
 

Code :
  1. Map<Object, int> map = new HashMap<Object, int>();


 
selon la logique suivante:
 
J ai 3 objects:  
 

Code :
  1. Object obj1 = new Object(5,10);
  2. Object obj2 = new Object(5,3);
  3. Object obj3 = new Object(8,2);
  4. Object obj4 = new Object(8,4);
  5. Object obj5 = new Object(5,20);


 
Si deux objects ont la meme valeur du champ first (obj1.first = obj2.first), je mettrai dans la map l objet qui a la valeur la plus grande du champ second.
 
Concretment, j aimerais que map contienne obj4 et obj5 en cle et en valeur le champ first:
(obj4,8) et (obj5,5)
 
Je me demadias si Java offre un mecanisme intelligent et efficace pour faire cela, comme par exemple Comparator qui permet de remplir une TreeMap directement selon une logique donnee (implementee dans Comparator)?
Y-a-t-il quelaue chose de similaire que je pourrais utiliser dans ce cas la?
 
Merci de votre aide!!

mood
Publicité
Posté le 14-05-2015 à 00:00:26  profilanswer
 

n°2258101
DDT
Posté le 14-05-2015 à 05:21:42  profilanswer
 

Bon déjà c'est pas super malin d'appeler une classe "Object".

 

Mais c'est pas dur d'implémenter ta propre méthode put(k, v) qui suit ta logique.
Et pour ça il vaut mieux faire de la délégation que de sous-classer HashMap directement.

Message cité 1 fois
Message édité par DDT le 14-05-2015 à 05:29:15

---------------
click clack clunka thunk
n°2258102
caps lock
Posté le 14-05-2015 à 06:27:48  profilanswer
 

DDT a écrit :

Bon déjà c'est pas super malin d'appeler une classe "Object".  
 
Mais c'est pas dur d'implémenter ta propre méthode put(k, v) qui suit ta logique.  
Et pour ça il vaut mieux faire de la délégation que de sous-classer HashMap directement.  


Je peux te demander une précision par ce que tu entends par "délégation" ?

n°2258594
azertyp
Posté le 22-05-2015 à 12:52:22  profilanswer
 

Utilise une TreeMap (que tu instancies avec le bon comparator).  :jap:

n°2258617
par l'anne​au de l'ia
word master
Posté le 22-05-2015 à 16:33:11  profilanswer
 

Ben, les objet contenue dans la map sont plus deux int mais un objet et un int, trois int.
Après comment les hashmap gère les objet, c'est un choix. S'il ne te convienne pas choisi une autre gestion de données.
Je connais rien à java et rien au hash, mais voilà quoi. Ma contbution.
 
 
Si tu shouaite acceder à des données dans un ordre donnée il existe des sous-classe, les file les liste les queue les stack les tree etc... j'y connais pas grand chose, je suis ammateur. Mais voilà quoi.
 
Si non, j'ai même pas compris la question en vrai.
Tu peux la refaire ! Svp.
 
Ca veux dire quoi : en cle et en valeur ?
 
 
A mon avis il y a des "et" en trop.
 
Tu veux probablement faire ce que j'ai dis. t'as dis deux objet et et un champs.first. ce que ferait encore autre chose. Fait gaffe !  :jap:


Message édité par par l'anneau de l'ia le 22-05-2015 à 16:39:04

---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2258620
antiseptiq​ueincolore
Posté le 22-05-2015 à 17:46:23  profilanswer
 

scuse moi mais si tu sais pas tu réponds pas, peut-etre?

n°2258621
par l'anne​au de l'ia
word master
Posté le 22-05-2015 à 18:04:50  profilanswer
 

antiseptiqueincolore a écrit :

scuse moi mais si tu sais pas tu réponds pas, peut-etre?


Je sais ce que j'ai écrit.


---------------
Toute expression prend un sens spirituel qui nous influence dans notre quête de l'Homme.
n°2262122
DarkHorse
Posté le 08-07-2015 à 15:05:06  profilanswer
 

ahmadou_20 a écrit :

(...)
Si deux objects ont la meme valeur du champ first (obj1.first = obj2.first), je mettrai dans la map l objet qui a la valeur la plus grande du champ second.


 
Tout ton code se trouve dans cette phrase :jap:  
 
Tu fais une comparaison entre tes deux objets, et puis tu fais un "put" de l'objet que tu veux dans ta Map


---------------
Corvette C5 Coupé owner

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Remplir une map en java selon une logique donnee

 

Sujets relatifs
Problème Eclipse Metrics Javaexercice java - Est-ce faisable ?
Comment écrire une donnée dans une cellule passée en argument ?[JAVA] Injection SPRING d'une inner class dans un EJB.
JAVA FX: Ajouter plusieurs photos a un profil, en FXMLBase de donnée
Piano Numérique sur Java's CoolVBA EXCEL exportation de donnée vers une BD
EXCEL VBA Liaison Excel Base de donnée toute simplerécupération donnée dans des paquet UDP
Plus de sujets relatifs à : Remplir une map en java selon une logique donnee


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR