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

  FORUM HardWare.fr
  Programmation
  Java

  Comparaison de valeur dans un arraylist

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison de valeur dans un arraylist

n°1328349
ido-
Posté le 19-03-2006 à 17:35:53  profilanswer
 

Bonjour je cherche à comparer les valeurs de deux arraylist entre elles; mon code ne me renvoie rien du tout... une idée?
 
for(int pos = 0; pos < Liste1.size(); pos++)
         {
       
       
       
       if(Liste1.get(pos).equals(Liste2.get(pos)))  
       {
        System.out.println("OK" );
       }  
     }

mood
Publicité
Posté le 19-03-2006 à 17:35:53  profilanswer
 

n°1328374
benou
Posté le 19-03-2006 à 18:44:12  profilanswer
 

1) ta question n'est pas claire.
2) si tu ne sais pas faire un truc si simple, il n'est pas encore temps de poser des questions dans un forum, retourne à ton bouquin ou à tes cours.


---------------
ma vie, mon oeuvre - HomePlayer
n°1328379
ido-
Posté le 19-03-2006 à 18:53:28  profilanswer
 

1/Le fait est que je n'ai pas de bouquins, ni de cours traitant ce sujet.  
2/Je n'arrive pas à trouver d'information pertinentes sur internet, explique moi comment pourrais je trouver la solution en dehors de l'utilisation d'un forum?  
 
Je cherche à comparer l'égalité de la valeur int de la position 0 de l'arraylist1 avec la valeur int de la position 0 de l'arraylist2. Il y a surement une histoire de cast à faire mais je n'arrive à rien.  
 
Si tu ne comprends toujours pas, voilà un dessin:
 
Arraylist1: 0 1 2 3 4
Arraylist2: 0 3 2 5 4
 
Je cherche à voir si 0=0, ou 1=3, etc...
 
Avec des réponses comme les tiennes, j'ai de grandes chances de rester au même niveau et d'emmerder plus longtemps la communauté.

n°1328385
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 18:58:50  profilanswer
 

Tu t'es posé des questions sur ton code pour essayer de découvrir pourquoi il ne fonctionnait pas, déjà?
 
Ce serait peut-être une bonne idée non?


Message édité par masklinn le 19-03-2006 à 19:06:59

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328387
benou
Posté le 19-03-2006 à 19:01:35  profilanswer
 

un forum c'est pas fait pour des cours particulier : ce n'est pas adapté.
Trouve toi des cours ou des bouquins sur internet, ca ne manque pas ! Je te promet que ce sera beaucoup plus efficace pour toi.
 
De plus, je n'ai toujours pas compris quel était ta question. Elle doit faire quoi ton code ? ecrire ok à chaque fois que 2 objets sont identiques ? je vois pas bien l'intérêt ... C'est quoi que tu attends de ton bout de code ?
 
 
PS : étant modérateur de ce forum, je te promet que si tu ne fait que "emmerder [...] la communauté", tu ne vas pas faire long feu ...

Message cité 1 fois
Message édité par benou le 19-03-2006 à 19:02:20

---------------
ma vie, mon oeuvre - HomePlayer
n°1328390
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 19:09:22  profilanswer
 

benou a écrit :

De plus, je n'ai toujours pas compris quel était ta question. Elle doit faire quoi ton code ? ecrire ok à chaque fois que 2 objets sont identiques ? je vois pas bien l'intérêt ... C'est quoi que tu attends de ton bout de code ?


Il veut comparer les éléments successifs de deux listes pour savoir si deux objets au même endroit dans les deux listes sont égaux.
 
Pour clarifier, en python ça donnerait
 

Code :
  1. >> l1 = [0, 1, 2, 3, 4]
  2. >> l2 = [0, 3, 2, 5, 4]
  3. >>> for i, a, b in zip(count(), l1, l2):
  4.     if a == b: print "Elements égaux à l'indice %d"%(i)
  5.     else: print "Elements différents à l'indice %d"%(i)
  6.  
  7. "Elements égaux à l'indice 0"
  8. "Elements différents à l'indice 1"
  9. "Elements égaux à l'indice 2"
  10. "Elements différents à l'indice 3"
  11. "Elements égaux à l'indice 4"


Message édité par masklinn le 19-03-2006 à 19:12:25

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328393
benou
Posté le 19-03-2006 à 19:12:58  profilanswer
 

je sais ce qu'il vaut faire, mais je ne sais pas de quel façon il veut le faire : là son code fait rien d'autre que d'ecrire ok quand 2 trucs sont égaux. J'imagine que c'est pas ça son but. Sinon il est remplit (sauf le cas des null, mais on en est pas là j'ai l'impression)


---------------
ma vie, mon oeuvre - HomePlayer
n°1328395
ido-
Posté le 19-03-2006 à 19:15:08  profilanswer
 

Je pense que les forums sont fait justement pour traiter des cas précis, pour les cas généraux, il y a les bouquins...
De plus, le fait de juger l'utilité du code est plutot stupide. En effet, cette boucle s'incrit dans le traitement  d'un programme, et donc je ne vois pas pourquoi tu juges l'intérêt de ce bout de code.
Pour ce qui est d'emmerder la communauté, c'est bien ce que tu me reproches de faire en demandant des réponses à une question "simpliste", personnellement, ce n'est pas mon but.
 
Enfin, si tu n'arrives toujours pas à comprendre quelle est ma question, soit je suis vraiment  tres mauvais dans l'art de décrire un probleme, soit  cela vient de toi...
 
J'ai essayé de caster l'objet retourné en int:
 
for(int pos = 0; pos < List1.size(); pos++)
         {
       
       Integer element = (Integer)List1.get(pos);
       Integer element2 = (Integer)List2.get(pos);
       
       if(element==element2)  
       {
         
        System.out.println("N" );
       }  
           }
 
Mais à l'execution, une erreur survient:
 
Exception in thread "main" java.lang.ClassCastException: java.lang.String
 
Je me donne donc le droit de demander de l'aide sur un forum.

n°1328398
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 19:18:25  profilanswer
 

ido- a écrit :

Enfin, si tu n'arrives toujours pas à comprendre quelle est ma question, soit je suis vraiment  tres mauvais dans l'art de décrire un probleme, soit  cela vient de toi...
 
J'ai essayé de caster l'objet retourné en int:
 

Code :
  1. for(int pos = 0; pos < List1.size(); pos++)
  2.            {
  3.                
  4.                Integer element = (Integer)List1.get(pos);
  5.                Integer element2 = (Integer)List2.get(pos);
  6.                
  7.                if(element==element2)
  8.                {
  9.                    
  10.                    System.out.println("N" );
  11.                }    
  12.           }


 
Mais à l'execution, une erreur survient:
 
Exception in thread "main" java.lang.ClassCastException: java.lang.String
 
Je me donne donc le droit de demander de l'aide sur un forum.


En clair tu fais n'importe quoi et tu te demandes pourquoi ça marche pas :sweat:  
 
Si tu lisais le message du compilateur tu réaliserais peut-être que tu tentes de caster un String en Integer, Java c'est pas PHP hein, des insanités pareilles il ne les accepte pas [:pingouino]
 
Ah, et accessoirement int != Integer, mais ça tu le saurais si tu avais lu un minimum de docs genre le Java tutorial ou Thinking in Java [:boulax]


Message édité par masklinn le 19-03-2006 à 19:18:51

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328401
ido-
Posté le 19-03-2006 à 19:21:15  profilanswer
 

Les données contenues dans l'arraylist sont des int. Lorsque j'essaye de caster en int, le compilateur me renvoit "inconvertible types".
 
Lorsque j'essaye de caster en String, le compilateur me renvoit:
 
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer

mood
Publicité
Posté le 19-03-2006 à 19:21:15  profilanswer
 

n°1328403
benou
Posté le 19-03-2006 à 19:23:43  profilanswer
 

1) tu es vraiment très mauvais dans l'art de décrire un probleme. Tu remarqueras d'ailleur qu'entre tes 2 posts ton code a changé, et que dans le 2e on dicerne enfin un problème à résoudre. Par contre on ne sait toujours pas quel est l'objectif de ton bout de code : déterminer si tes deux listes sont égales ? trouver l'index du premier objet indégale ? autre ?
2) Ton ton ne me plait pas du tout ... soit tu en changes, soit tu dégages.
3) concernant ton problème, puisqu'on le connait enfin, comme le laisse comprendre le message d'erreur, tu as une String dans ta liste et toi tu essayes de la caster en Integer. Forcément ca plante => à toi de mettre le bon type d'objet dans ta liste. (comme on ne voit pas comment tu la remplis, je ne peux pas t'en dire plus)
Ensuite la comparaison de deux Integer ca se fait avec la méthode equals() et pas avec == (qui ne fonctionne que pour les types primitifs ou les tests d'égalités de référence)
 


---------------
ma vie, mon oeuvre - HomePlayer
n°1328407
benou
Posté le 19-03-2006 à 19:26:26  profilanswer
 

ido- a écrit :


Lorsque j'essaye de caster en String, le compilateur me renvoit:
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer


Si un coup ca te gueule dessus parce que c'est des String et lautre coup parce que c'est des Integer, c'est surement que tu as des objets des 2 types dans ta liste ...


---------------
ma vie, mon oeuvre - HomePlayer
n°1328408
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 19:29:40  profilanswer
 

ido- a écrit :

Les données contenues dans l'arraylist sont des int.
 
 Lorsque j'essaye de caster en int, le compilateur me renvoit "inconvertible types".


Franchement, ça te dirait pas d'apprendre le java [:petrus dei]
 
Non parce que là comme je le disais au dessus tu fais n'importe quoi et tu te demandes pourquoi ça marche pas.
 
Il y a un nom pour ça, ça s'appelle le cargo cult programming


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328410
ido-
Posté le 19-03-2006 à 19:30:16  profilanswer
 

Hélas, je n'utilise ce ton que lorsque qu'il est utilisé contre moi. Fais attention à ce que ton status de modérateur n'exacerbe pas trop ton ego
:/
 
Et non, je n'ai que des int dans ma liste, c'est pourquoi je ne comprends pas l'erreur : |

n°1328412
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 19:34:08  profilanswer
 

ido- a écrit :

Hélas, je n'utilise ce ton que lorsque qu'il est utilisé contre moi. Fais attention à ce que ton status de modérateur n'exacerbe pas trop ton ego
:/
 
Et non, je n'ai que des int dans ma liste, c'est pourquoi je ne comprends pas l'erreur : |


Et si tu montrais le code initialisant les listes?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328414
benou
Posté le 19-03-2006 à 19:37:45  profilanswer
 

ido- a écrit :

Hélas, je n'utilise ce ton que lorsque qu'il est utilisé contre moi. Fais attention à ce que ton status de modérateur n'exacerbe pas trop ton ego
:/


c'est ma patience que tu exacerbes  :fou:  
 

ido- a écrit :

Et non, je n'ai que des int dans ma liste, c'est pourquoi je ne comprends pas l'erreur : |


Evite les affirmations, ca fait très prétentieux pour un débutant.
une ArrayList ne peut contenir que des objets, pas des types primitifs => ce que tu dis est faux.
Et même en faisant abstraction de ça et en imaginant qu'elle ne contienne que des Integer, le message d'erreur que tu obtiens (ClassCast : String) prouve que tu te trompes.


Message édité par benou le 19-03-2006 à 19:40:23

---------------
ma vie, mon oeuvre - HomePlayer
n°1328420
ido-
Posté le 19-03-2006 à 19:50:35  profilanswer
 

C'est exact: j'ai des string issue d'une méthode ToSplit (qui ne découpe en fait que des nombres entrés au clavier) [Je viens juste de calculer que les données rentrées étaient considérées comme des string)
 
Mais ayant casté les données issues des deux listes en String, et les comparant avec .equals, je ne devrais pas rencontrer ce message non ?

n°1328421
benou
Posté le 19-03-2006 à 19:53:24  profilanswer
 

non ce qui me fait dire que tu as des objets de 2 types différents dans ta liste. T'as qu'à tester leur type [:spamafote]
 
 
(Tu te rends compte que ce qu'on fait là c'est de te dire point par point ce  que tu pourrais trouver tout seul en faisant quelques tests ... c'est pour ça que je dis que c'est pas adapté les forums pour les tout débuts et pour des problèmes de ce type)


Message édité par benou le 19-03-2006 à 20:19:27

---------------
ma vie, mon oeuvre - HomePlayer
n°1328445
post_it
Hmmmm!...
Posté le 19-03-2006 à 20:40:37  profilanswer
 

ido- a écrit :

Mais ayant casté les données issues des deux listes en String, et les comparant avec .equals, je ne devrais pas rencontrer ce message non ?


 
FAUX!
 
La méthode "equals" permet de vérifier si deux variables font référence au même objet. Or là, tu as deux objets String différents; même si le contenu des String est identique, ce sont deux objets distincts, donc la méthode "equals" va te renvoyer false.  
 
Ce que tu as besoin de faire , c'est comparer le contenu de tes deux String; cela ce fait de la manière suivante:
 

Code :
  1. String s1 = (String)Liste1.get(pos);
  2. String s2 = (String)Liste2.get(pos);
  3. if( s1.compareTo(s2) == 0 )
  4. {
  5. System.out.println("OK" );
  6. }

n°1328493
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 22:11:45  profilanswer
 

post_it a écrit :

La méthode "equals" permet de vérifier si deux variables font référence au même objet.


Ta drogue a l'air super, je peux en avoir aussi?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328507
benou
Posté le 19-03-2006 à 22:30:25  profilanswer
 

post_it a écrit :


La méthode "equals" permet de vérifier si deux variables font référence au même objet. Or là, tu as deux objets String différents; même si le contenu des String est identique, ce sont deux objets distincts, donc la méthode "equals" va te renvoyer false.


bha non, ca c'est le comparator ==


---------------
ma vie, mon oeuvre - HomePlayer
n°1328508
ido-
Posté le 19-03-2006 à 22:38:51  profilanswer
 

Ok, voilà le topo: j'ai un arraylist avec dedans des nombres issue d'une entrée clavier donc en String, et une autre ou ce sont des nombres rentrés en int dedans. Lorsque je compare avec equals de la facon:  
 
for(int pos=0; pos < GenList.size(); pos++)
         {
       
       Object s1 = (Object)List1.get(pos);
       Object s2 = (Object)List2.get(pos);
       
   
   if(s1.equals(s2))
       {
         
        System.out.println("vrai" );
       }  
                 else{
                        System.out.println("faux" )}
 
 
             }
 
Cela me renvoit faux, même lorsque les deux valeurs sont les mêmes. Avec la methode de post_it, le compilateur me répond que les types sont différents.
Pourtant, en reprenant ma technique de départ avec les objects, les deux valeurs sorties sont bien des Objects, donc si je les comparent ca devrait marcher, où est le probleme?

Message cité 1 fois
Message édité par ido- le 19-03-2006 à 22:48:45
n°1328513
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 22:49:02  profilanswer
 

Je crois avoir demandé la manière dont tu initialises tes listes [:kiki]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328514
gm_superst​ar
Appelez-moi Super
Posté le 19-03-2006 à 22:49:42  profilanswer
 

ido- a écrit :

Cela me renvoit faux, même lorsque les deux valeurs sont les mêmes. Avec la methode de post_it, le compilateur me répond que les types sont différents.
Pourtant, les deux valeurs sorties sont bien des Objects? Ou est le probleme?


Les vaches et les canards ont bien 2 yeux tous deux, se sont pourtant des animaux. Mais ils ne sont pas égaux, où est le problème ?


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°1328516
ido-
Posté le 19-03-2006 à 22:52:01  profilanswer
 

Ok, donc cela veut dire que j'ai beau les caster cela ne sert a rien? ils ne sont pas comparables?

n°1328517
ido-
Posté le 19-03-2006 à 22:54:22  profilanswer
 

Masklinn:
 
ArrayList List1 = new ArrayList();
ArrayList List2 = new ArrayList();
 

n°1328519
gm_superst​ar
Appelez-moi Super
Posté le 19-03-2006 à 22:56:27  profilanswer
 

ido- a écrit :

Ok, donc cela veut dire que j'ai beau les caster cela ne sert a rien? ils ne sont pas comparables?


La lecture attentive de la doc te donnera tous les éléments nécessaires pour récupérer un int à partir d'un String ou inversement.


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°1328545
masklinn
í dag viðrar vel til loftárása
Posté le 19-03-2006 à 23:49:50  profilanswer
 

ido- a écrit :

Masklinn:
 
ArrayList List1 = new ArrayList();
ArrayList List2 = new ArrayList();


[:pingouino]
 
Hum, comment dire, l'initialisation ça comprenait le remplissage, parce que j'me doute bien que tu tapes un new, je m'attendais pas à ce que tu passes par un l33t Arrays.asList quoi [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328551
benou
Posté le 20-03-2006 à 00:10:33  profilanswer
 

gm_superstar a écrit :

La lecture attentive de la doc te donnera tous les éléments nécessaires pour récupérer un int à partir d'un String ou inversement.


j'aide : ca se trouve dans la classe Integer


---------------
ma vie, mon oeuvre - HomePlayer
n°1328557
benou
Posté le 20-03-2006 à 00:20:25  profilanswer
 

ido- a écrit :

Ok, donc cela veut dire que j'ai beau les caster cela ne sert a rien? ils ne sont pas comparables?


non, ca veut dire que tu compares des String et des Integer, et qu'ils ne peuvent donc pas être égaux.


---------------
ma vie, mon oeuvre - HomePlayer
n°1328669
post_it
Hmmmm!...
Posté le 20-03-2006 à 10:50:02  profilanswer
 

masklinn a écrit :

Ta drogue a l'air super, je peux en avoir aussi?


 
http://java.sun.com/j2se/1.5.0/docs/api/

Citation :


The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).


 
Mais bon, j'dis ça, j'dis rien!...

n°1328676
masklinn
í dag viðrar vel til loftárása
Posté le 20-03-2006 à 11:03:34  profilanswer
 

post_it a écrit :

http://java.sun.com/j2se/1.5.0/docs/api/

Citation :


The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).


 
Mais bon, j'dis ça, j'dis rien!...


Fail for stupid [:dawa]
http://java.sun.com/j2se/1.5.0/doc [...] ng.Object)

Citation :

public boolean equals(Object obj)
 
    Compares this object to the specified object. The result is true if and only if the argument is not null and is an Integer object that contains the same int value as this object.


http://java.sun.com/j2se/1.5.0/doc [...] ng.Object)

Citation :

public boolean equals(Object anObject)
 
    Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.


 
Réfléchis 30 secondes et tu devrais comprendre la raison de l'implémentation par défaut d'equals [:dawa]
 
Et accessoirement
http://java.sun.com/j2se/1.5.0/doc [...] ng.String)

Citation :

public int compareTo(String anotherString)
 
    Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string. The result is a negative integer if this String object lexicographically precedes the argument string. The result is a positive integer if this String object lexicographically follows the argument string. The result is zero if the strings are equal; compareTo returns 0 exactly when the equals(Object) method would return true.
[snip]


 
Oh, snap [:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1328692
post_it
Hmmmm!...
Posté le 20-03-2006 à 11:26:59  profilanswer
 

OK, je m'incline !  
 :jap:

n°1418686
007seb
Posté le 03-08-2006 à 02:51:13  profilanswer
 

Ouch... étant noob moi-même, ce forum fait vraiment peur...
 
Vous connaissez un autre forum moins élitiste avec des bénévoles qui aident vraiment les débutants ?
 
Je passe plus de temps à lire des cours de programmation qu'à lire des forums, mais je tombe souvent sur des cas particuliers non traités dans les bouquins ou dans les cours...
 
Vais tenter sur developpez.net
 

n°1421203
angelo77
Posté le 06-08-2006 à 23:40:18  profilanswer
 

Bonsoir ido-,
Ci joint un exemple de code qui je pense répondra a ton probleme.
Pour terminer mon message, je me permets de dire que l'attitude de certains me font vomir.  
Nottement la remarque :  
 

Citation :

PS : étant modérateur de ce forum, je te promet que si tu ne fait que "emmerder [...] la communauté", tu ne vas pas faire long feu ...


 
ne serait-ce pas un abus de pouvoir? Je trouve que meme si une question sur un forum peut paraitre bête, ceci ne donne pas le droit d'insulter la personne. Insulter les gens, ca ne fait pas avancer la "communauté". Tout le monde a débuté un jour ou l'autre et je trouve que c'est dommage que certains prennent de haut les personnes débutantes. Cette attitude ne motive pas à poster des messages(comme le dit 007seb), si c'est pour après se faire insulter.
 
J'ai termine ma remarque et voici le code (qui peut etre critique):  
 

Code :
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. public class TestCompare {
  4. /**
  5.  * Exemple de comparaison de 2 listes de String  
  6.  * (contenant des valeurs int).
  7.  * ATTENTION cet example ne fonctionne pas
  8.  * si une des listes contient autre chose que des  
  9.  * String (contenant des valurs de int)
  10.  */
  11. public static void main(String[] args) {
  12.  List list1 = new ArrayList();
  13.  list1.add("0" );
  14.  list1.add("1" );
  15.  list1.add("2" );
  16.  list1.add("3" );
  17.  list1.add("4" );
  18.  List list2 = new ArrayList();
  19.  list2.add("0" );
  20.  list2.add("3" );
  21.  list2.add("2" );
  22.  list2.add("5" );
  23.  list2.add("4" );
  24.  boolean compareResult = compareList(list1, list2);
  25.  if (compareResult) {
  26.   System.out.println("Les 2 listes sont identiques." );
  27.  }
  28.  else {
  29.   System.out.println("Les 2 listes NE sont PAS identiques." );
  30.  }
  31. }
  32. /**
  33.  * Retourne true si les listes de String list1 et list2  
  34.  * ont des String (de int) identiques et false sinon.
  35.  * @param list1
  36.  * @param list2
  37.  * @return
  38.  */
  39. public static boolean compareList(List list1, List list2) {
  40.  // test si les 2 listes ont la meme taille
  41.  if (list1.size() != list2.size())
  42.   return false;
  43.  // parcours des items de list1 et list2  
  44.  for (int i = 0; i < list1.size(); i++) {
  45.   String s1 = (String)list1.get(i);
  46.   String s2 = (String)list2.get(i);
  47.   // Transformation de tes String
  48.   // en int
  49.   int i1 = Integer.parseInt(s1);
  50.   int i2 = Integer.parseInt(s2);
  51.   if(i1 != i2) {
  52.    return false;
  53.   }
  54.  }
  55.  return true;
  56. }
  57. }


 
Angelo

n°1421207
angelo77
Posté le 07-08-2006 à 00:00:52  profilanswer
 

Je n'avais pas vu que dans ta liste tu avais des Integer et des String. Voici le code qui permet de gerer une liste de Integer et/ou String :  
 

Code :
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. public class TestCompare {
  4. /**
  5.  * Exemple de comparaison de 2 listes de String  
  6.  * (contenant des valeurs int) OU des Integer.
  7.  * ATTENTION cet example ne fonctionne pas
  8.  * si une des listes contient autre chose que des  
  9.  * String (contenant des valurs de int)
  10.  */
  11. public static void main(String[] args) {
  12.  List list1 = new ArrayList();
  13.  list1.add("0" );
  14.  list1.add("1" );
  15.  list1.add(new Integer(2)); // <= Type Integer
  16.  list1.add("3" );
  17.  list1.add("4" );
  18.  List list2 = new ArrayList();
  19.  list2.add("0" );
  20.  list2.add("1" );
  21.  list2.add("2" );
  22.  list2.add("3" );
  23.  list2.add("4" );
  24.  boolean compareResult = compareList(list1, list2);
  25.  if (compareResult) {
  26.   System.out.println("Les 2 listes sont identiques." );
  27.  }
  28.  else {
  29.   System.out.println("Les 2 listes NE sont PAS identiques." );
  30.  }
  31. }
  32. /**
  33.  * Retourne true si les listes de String list1 et list2  
  34.  * ont des String (de int) OU des Integer identiques et false sinon.
  35.  * @param list1
  36.  * @param list2
  37.  * @return
  38.  */
  39. public static boolean compareList(List list1, List list2) {
  40.  // test si les 2 listes ont la meme taille
  41.  if (list1.size() != list2.size())
  42.   return false;
  43.  // parcours des items de list1 et list2  
  44.  for (int i = 0; i < list1.size(); i++) {
  45.   Object o1 = list1.get(i);
  46.   Object o2 = list2.get(i);
  47.   int i1 = getInt(o1);
  48.   int i2 = getInt(o2);
  49.   if(i1 != i2) {
  50.    return false;
  51.   }
  52.  }
  53.  return true;
  54. }
  55. /**
  56.  * retourne la valeur int de l'objet o qui doit etre une
  57.  * String (de valeur int) ou un Integer.
  58.  * @param o
  59.  * @return
  60.  */
  61. private static int getInt(Object o) {
  62.  if(o instanceof String) {
  63.   return Integer.parseInt((String)o);
  64.  }
  65.  else {
  66.   if(o instanceof Integer) {
  67.    return ((Integer)o).intValue();
  68.   }
  69.  }
  70.  return -1;
  71. }
  72. }


 
Angelo

n°2332364
lynako
Posté le 24-04-2019 à 23:23:12  profilanswer
 

Je suis venue chercher des réponses à un problème similaire sur ce forum et franchement, je trouve cela honteux la façon dont vous parlez à ceux qui sont débutants ou les non débutants qui ont des lacunes ou qui rencontrent tout simplement un problème basique. Vous vous croyez tout puissant avec votre statut de modérateur ou est-ce que c'est votre savoir en codage qui vous donne cette arrogance? Et vu le nombre de commentaires qui supportent cet avis (angelo77 et 007seb par exemple), c'est que je ne suis pas la seule à le penser et vous devriez allez vous cacher avec un comportement aussi abusif et irrespectueux!

n°2332373
MaybeEijOr​Not
but someone at least
Posté le 25-04-2019 à 09:10:30  profilanswer
 

Bonjour,
 
Est-ce vraiment pertinent de réagir 13 ans plus tard ? Quel est l'intérêt de votre message ? Un forum n'est pas un défouloir émotionnel, gardez votre frustration pour vous et tout le monde s'en portera mieux.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
mood
Publicité
Posté le   profilanswer
 


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

  Comparaison de valeur dans un arraylist

 

Sujets relatifs
[EXCEL] fonction comparaison entre cellule et tableau[Résolu][EXCEL] Recopie d'un fichier à l'autre par comparaison
Récupérer la valeur des bouttons radio[Résolu] remplacer la valeur d'un attibut dans un doc
Comparaison de dateInsertion d'entiers séparés par un espace ds un arraylist
[Javascript] valeur d'un select sous IEGarder la méme valeur d'un bouton radio
VB compter le nombre de valeurExecution d'un void main(args[]) en java et valeur retour
Plus de sujets relatifs à : Comparaison de valeur dans un arraylist


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