|
|||||||
| Débats Les débats et sondages sur le langage et les technologies Java |
|
|
Publicité ' | |||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 | ||||||||
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2003 Messages : 3 293 ![]() |
Aujourd'hui :
Code :
Code :
Code :
Code :
__________________
Vincent Brabant Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide. |
||||||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Ingénieur développement logiciels Inscription : mai 2004 Messages : 792 ![]() |
Bonsoir
Et comment ça serait implémenté derrière ? C'est une redéfinition de l'opérateur [] ou c'est une fonctionnalité qui se limite aux listes et map ? Dans le cas de la première réponse : pourquoi pas ? Pour la deuxième réponse : POUR !!! Merci Yann
__________________
duck and cover |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : septembre 2007 Messages : 282 ![]() |
J'ai voté contre, non pas que le principe me déplaise, mais au niveau lecture/compréhension du code, ça deviendrai chaud ... Surtout dans l'exemple ci-dessus, le put() de Map permet d'ajouter OU de remplacer un couple clé/valeur, et dans le cas de l'ajout, ça deviendrait étrange (pour moi) de l'écrire de cette façon...
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 654 ![]() |
Pour, à condition que cela implique l'implémentation d'une interface spécifique (comme ce fut le cas pour le "for each" avec Iterable).
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 662 ![]() |
Ca sent le melange des tableaux à la lecture du code pour peu que deux variables ai des noms proches....
Je m'abstient car pas vraiment pour mais je peux pas dire que je suis contre. En C on peut faire de la redefinition d'operateur....
__________________
Pour me faire grandir |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : juin 2004 Messages : 175 ![]() |
contre
la lecture du code n'est pas simple
__________________
En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Jacques Rouxel : "Les shadoks") |
|
|
00
|
|
|
#7 | ||
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Pour, par contre je ne comprends pas le bémol de adiGuba...
Pour la permutation dans la liste, il me semble intéressant de pouvoir faire Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
Citation:
Ça devient intéressant, mais est-ce que ce n'est pas un peu risqué ? Boarf, je trouve pas d'exemple en fait, et c'est pas pire que le foreach Donc zou, pour !! |
||
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 654 ![]() |
En fait je souhaiterais que cela ne se limite pas aux List et Map, mais que cela puisse être utilisé pour n'importe quelle classe qui implémenterait une interface spécifique.
Par exemple : Code :
Bien sûr l'interface List étendra cette interface (cela ne posera aucun problème car elle comporte déjà ces méthodes) afin que cela fonctionne sur toutes les Lists... De la manière à ce qui a été fait pour le "for each". En réalité le "for each" n'attend pas une Collection mais un Iterable, qui définit seulement la méthode iterator(). a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
10
|
|
|
#10 |
|
Membre expérimenté
![]() |
ça me rappelle le Pascal
|
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : décembre 2006 Messages : 1 877 ![]() |
Contre, je preferes la syntaxe actuelle qui rappelle bien plus qu'on manipule un object. redefinir les methodes put/get ... devient ambigue si on se met a manipuler les collections comme des tableaux.
__________________
Systèmes d'Informations Géographiques- Projets : GeoAPI GeotoolKit PuzzleGISPour un monde sans BigBrother IxQuick ni censure RSF |
|
|
00
|
|
|
#12 |
![]() Consultant informatique Inscription : février 2004 Messages : 1 180 ![]() |
Contre,
On se dirige un peu trop vers de la surcharge d'opérateurs et je hais ce truc. Mauvaise lecture: bonjour pour faire le lien avec la javadoc correspondant a l'appel par exemple. Gain: que du sucre syntaxique, n'apporte vraiment rien d'autre. Bulbo
__________________
[Java] [NetBeans] [CVS] La FAQ Java Merci de ne pas me poser de questions techniques par MP. !! J'aurais voulu être une conserve !! |
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Inscription : septembre 2007 Messages : 282 ![]() |
Oui c'est cela, c'est ce que je disais, enfin peut être pas en bons termes :p Mais justement remplacer le put() par un simple map[clé] = valeur me fait peur dans le cadre d'une nouvelle clé.
|
|
|
00
|
|
|
#14 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
C'est exactement la même chose que pour une liste en fait. Dans le cas d'une liste ou d'un array, la clé est l'indice, si tu affectes un élément à un indice ou il en a déjà un, tu remplaces l'ancien, c'est tout.
|
|
|
00
|
|
|
#15 |
|
Membre chevronné
![]() Inscription : septembre 2003 Messages : 737 ![]() |
La surcharge d'opérateur , on va y venir ;-)
|
|
|
00
|
|
|
#16 |
|
Membre confirmé
![]() Inscription : janvier 2005 Messages : 229 ![]() |
|
|
|
00
|
|
|
#17 |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 654 ![]() |
Ben c'est quand même de la surcharge d'opérateur : pour l'opérateur [] sur des liste
Mais bon cela reste relativement bien encadré et on est loin des surcharges dans tous les sens qu'il est possible de faire en C++ Mais c'est sûr que cela pourrait avoir des effets indésirables (l'opérateur + dans une boucle en est un exemple frappant). a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#18 |
![]() ![]() Inscription : août 2004 Messages : 8 637 ![]() |
Enfin dans une version complêtement différente et orientée TableModel serait de pouvoir faire çà sur des beans dont on définirait l'ordre à grand coup d'annotations.
Au niveau des listes çà me semble un peu plus foireux au niveau lecture de code, ne plus savoir si j'ai une Collection ou un tableau 100 lignes plus bas...
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something. |
|
|
00
|
|
|
#19 |
![]() ![]() Fabrice BouyéDéveloppeur Java Inscription : août 2005 Messages : 4 074 ![]() |
Oui MAIS non seulement il faut integrer une interface Indexable, mais il faudra egalement ammender la doc de List (avertissement que les perfs peuvent varier suivant le type de liste) et LinkedList (precision en insistant LOURDEMENT sur la lenteur des acces via [] - similaires a ceux de get() et set()). De meme la doc de Map (avertissement que les resultats peuvent varier suivant le type de map) et HashMap (precision pour indiquer que deux appels successifs a myMap[i] peuvent ne pas retourner le meme element si un nouvel element a ete insere dans la map car l'ordre de stockage varie en fonction de la methode de hashage) doit etre ammendee. Quant a TreeMap, l'indice sera fonction de l'ordre de tris, j'imagine.
Etc... Donc a manier avec precaution.
__________________
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes. suivez mon blog sur Développez.Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook |
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() Inscription : juillet 2006 Messages : 765 ![]() |
J'aimerais plutot un truc qui permet d'ajouter directement des objets à la création.
Comme Code :
ArrayList list=new ArrayList(){obj1, obj2, obj3};
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT. API Simple et Productive. Avec style. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com