[] Re: Contrôle d'unicité de s éléments d'un tableau de STRING...
Jacques PIOTROWSKI <[email protected]> Sat, 10 Sep 2011 14:12:24 +0200
| Newsgroups | gmane.comp.java.netbeans.general.french |
|---|---|
| Message-ID | <[email protected]> |
--Apple-Mail-128-194612303
Content-Type: text/plain;
charset=ISO-8859-1;
format=flowed;
delsp=yes
Content-Transfer-Encoding: quoted-printable
Bonjour,
j'ai corrig=E9 ainsi :
/**
* METHODE DE CONTROLE D'UNICITE D'UN ELEMENT DANS UN TABLEAU.
* @param tableau Tableau de cha=EEnes
* @return unicite (true ou false)
*/
private boolean controlerUniciteChaine(final String[] tableau) {
unicite =3D true;
nbDoublons =3D 0;
boolean absent;
if (tableau.length =3D=3D 0) {
unicite =3D false;
} else {
HashSet<String> set =3D new =
HashSet<String>(tableau.length);
final Set<String> uniqueEntries =3D =20
Collections.synchronizedSet(set);
for (int i =3D 0; i < tableau.length; i++) {
if (tableau[i].length() > 0) {
// "add" retourne "true" si ce SET ne contient =20
pas d=E9j=E0 l'=E9l=E9ment sp=E9cifi=E9.
absent =3D uniqueEntries.add(tableau[i]);
if (!absent) {
nbDoublons =3D nbDoublons + 1;
}
}
}
}
if (nbDoublons > 0) {
unicite =3D false;
}
return unicite;
}
-------------------------------------------
Le 6 sept. 11 =E0 23:21, Jacques PIOTROWSKI a =E9crit :
> Bonjour,
>
> NetBeans me dit pour cette m=E9thode, avec l'option de compilation "-=20=
> Xlint:unchecked" :
>
> ligne 1012 :
> warning: [unchecked] unchecked conversion
> found : java.util.HashSet
> required: java.util.Set<T>
> final Set uniqueEntries =3D =20
> Collections.synchronizedSet(hashSet);
>
> ligne 1016 :
> warning: [unchecked] unchecked call to add(E) as a member of the raw =20=
> type java.util.Set
> absent =3D uniqueEntries.add(tableau[i]);
>
> J'ai trouv=E9 ici un d=E9but de r=E9ponse : =
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDetails.htm=
l#FAQ007
> Mais je n'ai pas compris comment l'appliquer.
> Je pense qu'il fat plut=F4t =E9crire : Set<String> hashSet =3D new =20
> HashSet<String>(tableau.length);
> Le 1er warning disparait. Mais pour celui sur la m=E9thode "add", je =20=
> bote en touche =3D tableau[i] est bien de type "string"...
> Si quelqu'un a une id=E9e, je suis preneur. Idem s'il y a mieux pour =20=
> ce genre de traitement :)
> Merci d'avance.
>
>
> <Image 1.jpg>
--Apple-Mail-128-194612303
Content-Type: text/html;
charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
">Bonjour,<div><br></div><div>j'ai corrig=E9 ainsi =
:</div><div><br></div><div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> /**</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> * =
METHODE DE CONTROLE D'UNICITE D'UN ELEMENT DANS UN =
TABLEAU.</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> * @param tableau Tableau de =
cha=EEnes</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> * @return unicite (true ou =
false)</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> */</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> private =
boolean controlerUniciteChaine(final String[] tableau) =
{</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> unicite =3D =
true;</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> nbDoublons =3D =
0;</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> boolean absent;</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
if (tableau.length =3D=3D 0) {</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
unicite =3D false;</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
} else {</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> =
<b>HashSet<String> set =3D new =
HashSet<String>(tableau.length);</b></font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
<b>final Set<String> uniqueEntries =3D =
Collections.synchronizedSet(set);</b></font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
for (int i =3D 0; i < tableau.length; i++) =
{</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> if =
(tableau[i].length() > 0) {</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
// "add" retourne =
"true" si ce SET ne contient pas d=E9j=E0 l'=E9l=E9ment =
sp=E9cifi=E9.</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> =
absent =3D =
uniqueEntries.add(tableau[i]);</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
if (!absent) =
{</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> =
nbDoublons =3D nbDoublons + =
1;</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> =
}</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> =
}</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> =
}</font></div><div><font class=3D"Apple-style-span" face=3D"'Courier =
New'"> }</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
if (nbDoublons > 0) {</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
unicite =3D false;</font></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier New'"> =
}</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> return =
unicite;</font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier New'"> }</font></div></div><div><font =
class=3D"Apple-style-span" face=3D"'Courier =
New'"><br></font></div><div><font class=3D"Apple-style-span" =
face=3D"'Courier =
New'">-------------------------------------------</font></div><div><div>Le=
6 sept. 11 =E0 23:21, Jacques PIOTROWSKI a =E9crit :</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
-webkit-line-break: after-white-space; =
"><div>Bonjour,</div><div><br></div>NetBeans me dit pour cette m=E9thode, =
avec l'option de compilation "-Xlint:unchecked" =
:<div><br></div><div>ligne 1012 :</div><div><div>warning: [unchecked] =
unchecked conversion</div><div>found : =
java.util.HashSet</div><div>required: =
java.util.Set<T></div><div> =
final Set uniqueEntries =3D =
Collections.synchronizedSet(hashSet);</div><div><br></div><div>ligne =
1016 :</div><div><div>warning: [unchecked] unchecked call to add(E) as a =
member of the raw type java.util.Set</div><div> =
absent =3D =
uniqueEntries.add(tableau[i]);</div></div><div><br></div><div>J'ai =
trouv=E9 ici un d=E9but de r=E9ponse : <a =
href=3D"http://www.angelikalanger.com/GenericsFAQ/FAQSections/TechnicalDet=
ails.html#FAQ007">http://www.angelikalanger.com/GenericsFAQ/FAQSections/Te=
chnicalDetails.html#FAQ007</a></div><div>Mais je n'ai pas compris =
comment l'appliquer.</div><div>Je pense qu'il fat plut=F4t =E9crire =
: <b>Set<String> hashSet =3D new =
HashSet<String>(tableau.length);</b></div><div>Le 1er warning =
disparait. Mais pour celui sur la m=E9thode "add", je bote en =
touche =3D tableau[i] est bien de type "string"...</div><div>Si =
quelqu'un a une id=E9e, je suis preneur. Idem s'il y a mieux pour ce =
genre de traitement :)</div><div>Merci =
d'avance.</div><div><br></div><div><br></div><div><div><span><Image =
1.jpg></span></div></div></div></div></blockquote></div><br></body></ht=
ml>=
--Apple-Mail-128-194612303--