Remplir une map en java selon une logique donnee

Remplir une map en java selon une logique donnee - Java - Programmation

Marsh Posté le 14-05-2015 à 00:00:26    

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!!

Reply

Marsh Posté le 14-05-2015 à 00:00:26   

Reply

Marsh Posté le 14-05-2015 à 05:21:42    

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
Reply

Marsh Posté le 14-05-2015 à 06:27:48    

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" ?

Reply

Marsh Posté le 22-05-2015 à 12:52:22    

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

Reply

Marsh Posté le 22-05-2015 à 16:33:11    

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.
Reply

Marsh Posté le 22-05-2015 à 17:46:23    

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

Reply

Marsh Posté le 22-05-2015 à 18:04:50    

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.
Reply

Marsh Posté le 08-07-2015 à 15:05:06    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed