Précédent   Forum du club des développeurs et IT Pro > Java > Communauté Java > Débats

Débats Les débats et sondages sur le langage et les technologies Java

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Êtes-vous pour ou contre cette proposition ?
Pour 112 42,75%
Contre 150 57,25%
Votants: 262. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 20/12/2007, 00h12   #21
yann2
Membre Expert
 
Avatar de yann2
 
Homme
Ingénieur développement logiciels
Inscription : mai 2004
Messages : 792
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2004
Messages : 792
Points : 1 244
Points : 1 244
Bonsoir

Citation:
Envoyé par bouye Voir le message
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.
Il me semble que dans le cas d'une Map on n'utiliserait pas un indice entier mais une clé (n'importe quel objet donc), non ? Donc on s'en fout de l'ordre de stockage. Ce n'est pas ce que dit l'exemple ?

yann
__________________
duck and cover
yann2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 00h18   #22
bouye
Modérateur
 
Avatar de bouye
 
Homme Fabrice Bouyé
Développeur Java
Inscription : août 2005
Messages : 4 078
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Bouyé
Âge : 36
Localisation : Nouvelle-Calédonie

Informations professionnelles :
Activité : Développeur Java
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : août 2005
Messages : 4 078
Points : 8 546
Points : 8 546
Ah effectivement j'avais mal lu . Point de probleme sur les Map alors.
__________________
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
bouye est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h12   #23
woodwai
Rédacteur
 
Inscription : juillet 2002
Messages : 346
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2002
Messages : 346
Points : 695
Points : 695
Pour.
Je préférerais aussi qu'une interface permette clairement ce type de syntaxe.

Mon pour est motivé par le fait que l'utilisation de ces opérateur est déjà largement rependue dans le monde J2EE car la JSTL le fait donc pourquoi ne pas le faire en natif.
__________________
Venez visiter mon site sur developpez ou mon blog perso
woodwai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h13   #24
benwit
Rédacteur
 
Avatar de benwit
 
Inscription : septembre 2004
Messages : 1 628
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 1 628
Points : 3 094
Points : 3 094
D'accord avec abiguba en ajoutant une interface Indexable.

Citation:
Envoyé par bouye Voir le message
il faut integrer une interface Indexable.
benwit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h34   #25
natha
Expert Confirmé
 
Avatar de natha
 
Inscription : janvier 2006
Messages : 2 344
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : janvier 2006
Messages : 2 344
Points : 2 861
Points : 2 861
Contre.
Pas vraiment d'argument, ça me plait pas c'est tout. Ca oblige d'aller voir le type manipulé de départ pour savoir si c'est une List ou un tableau, j'aime pas trop scroller quand je vérifie du code.
__________________
Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
De la bonne manière de poser une question (et de répondre).
Je ne fais pas de service par MP. Merci (...de lire les règles...).
Ma page dvp.com
natha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 09h45   #26
Deadpool
Membre Expert
 
Avatar de Deadpool
 
Homme David
Inscription : novembre 2005
Messages : 1 244
Détails du profil
Informations personnelles :
Nom : Homme David
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : novembre 2005
Messages : 1 244
Points : 1 652
Points : 1 652
Citation:
Envoyé par natha Voir le message
Contre.
Pas vraiment d'argument, ça me plait pas c'est tout. Ca oblige d'aller voir le type manipulé de départ pour savoir si c'est une List ou un tableau, j'aime pas trop scroller quand je vérifie du code.
Ben franchement un tableau ou une List, ça se gère presque pareil. Moi je proposerais même d'ajouter ce qu'il faut aux tableaux pour qu'ils puissent être utilisés comme n'importe quelle Collection, car un tableau ce n'est qu'une Collection particulière de taille fixe (implémentation de l'interface Collection et pourquoi pas ajout d'une sous interface concernant les collections de taille fixe).
__________________
“THERE IS NO JUSTICE. THERE’S JUST ME!”
Deadpool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 10h15   #27
bmoussaud
Membre expérimenté
 
Avatar de bmoussaud
 
Benoit Moussaud
Inscription : décembre 2003
Messages : 218
Détails du profil
Informations personnelles :
Nom : Benoit Moussaud
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2003
Messages : 218
Points : 548
Points : 548
Envoyer un message via Yahoo à bmoussaud Envoyer un message via Skype™ à bmoussaud
trop compliqué !
__________________
Benoit Moussaud - XebiaLabs - Automatisation des déploiements. Screencast & Demo
bmoussaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 11h54   #28
Alec6
Membre confirmé
 
Inscription : juillet 2002
Messages : 621
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 621
Points : 297
Points : 297
C'est vrai qu'on remarque un problème d'unification des opérateurs.

Une classe c'est un peu comme une hashmap à la base, avec le nom des variables pour clé.

Je peux écrire maClass.maVariable

pourquoi dans une HasMap je ne peux pas écrire maHashMap.maKey

et monTableau.3 ou maList.8

On parle en réalité de chemins non ?

Vous allez me répondre il manque l'opérateur isDeclared (genre instanceOf)
Alec6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 14h55   #29
bassim
Membre expérimenté
 
Avatar de bassim
 
Homme
Ingénieur Réseaux
Inscription : février 2005
Messages : 647
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur Réseaux
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2005
Messages : 647
Points : 592
Points : 592
Envoyer un message via MSN à bassim Envoyer un message via Yahoo à bassim
Citation:
Envoyé par nicorama Voir le message
J'aimerais plutot un truc qui permet d'ajouter directement des objets à la création.
Comme
Code :
ArrayList list=new ArrayList(){obj1, obj2, obj3};
par contre ça, ça peut être pratique
__________________
Club des développeurs algériens

Where is my mind
bassim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 15h10   #30
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 657
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 657
Points : 22 438
Points : 22 438
Citation:
Envoyé par bassim Voir le message
Citation:
Envoyé par nicorama Voir le message
J'aimerais plutot un truc qui permet d'ajouter directement des objets à la création.
Comme
Code :
ArrayList list=new ArrayList(){obj1, obj2, obj3};
par contre ça, ça peut être pratique
Cela pourrait se faire sans modifier le langage en ajoutant un constructeur/varargs à chaque implémentation de Collection, par exemple pour ArrayList :
Code :
1
2
3
4
5
6
7
	public ArrayList(E first, E...args) {
		this(args.length + 1);
		add(first);
		for (E element : args) {
			add(element);
		}
	}
En attendant on peut faire cela en 2 lignes :
Code :
1
2
ArrayList<T> list=new ArrayList<T>();
Collections.addAll(list, obj1, obj2, obj3);
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 15h40   #31
xavlours
Membre Expert
 
Avatar de xavlours
 
Inscription : février 2004
Messages : 1 833
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 1 833
Points : 2 154
Points : 2 154
Contre, pour des raisons que bouye a évoqué.

L'API actuelle incite à utiliser les Iterators, qui sont le moyen le plus rapide de parcourir une Collection. Cette proposition, appliquée à une LinkedList (ou à une TreeMap), remplace next() en temps constant par un get(i) en temps polynomial (logarithmique pour les TreeMap).

De plus, j'ai déjà dit sur les switches que je n'aime pas trop mélanger syntaxe et API, que ce mélange devrait se limiter aux fonctions de la classe Object (comme + et toString, ou peut-être un jour switch et equals). Je trouve le foreach, qui s'applique aux Iterables ET aux tableaux, déjà un peu limite. Je n'ai pas encore changé d'avis.
__________________
"Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.
xavlours est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2007, 18h33   #32
kpouer
Membre confirmé
 
Inscription : mars 2007
Messages : 259
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 259
Points : 251
Points : 251
En tout cas il faudrait pas que ca fasse comme en c++ que ca ajoute un élément dès qu'on accède a une clef de la liste ou de la map ...
Et comment ferait on un remove d'une clef d'ailleurs ? on conserve la méthode remove() ?
kpouer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 08h37   #33
romaintaz
Rédacteur/Modérateur
 
Avatar de romaintaz
 
Homme Romain Linsolas
Java craftsman
Inscription : juillet 2005
Messages : 3 579
Détails du profil
Informations personnelles :
Nom : Homme Romain Linsolas
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Java craftsman
Secteur : Finance

Informations forums :
Inscription : juillet 2005
Messages : 3 579
Points : 6 722
Points : 6 722
Citation:
Envoyé par kpouer Voir le message
Et comment ferait on un remove d'une clef d'ailleurs ? on conserve la méthode remove() ?
Toutes les propositions dont on débat aujourd'hui sont des ajouts, voire des raccourcis syntaxiques... En aucun cas cela ne supprime les fonctionnalités (et donc les méthodes) présentes aujourd'hui ! Sinon bonjour la compatibilité Donc oui, on pourra toujours se servir de remove(), get(), put()...
__________________
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
romaintaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2007, 17h54   #34
ripounet
Invité régulier
 
Inscription : septembre 2004
Messages : 6
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 6
Points : 7
Points : 7
Par défaut Prudence

Si c'est accepté un jour, il vaudrait mieux que ça impose une Interface.
Mais se pose le problème du nommage des méthodes : dans une classe on n'a droit qu'à 1 seule méthode
Toto get(Object clé)
et 1 seul
void put(Object clé, Toto valeur)
donc soit les noms choisis seront "un peu tordus" (putAtindex ?), soit ils risqueront d'enter en conflit avec d'autres noms imposés par d'autres interfaces.
ripounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h29   #35
ash.ice.loky
Membre émérite
 
Homme
Inscription : février 2006
Messages : 923
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : février 2006
Messages : 923
Points : 977
Points : 977
Pour, ainsi que pour les autres operateurs ... vive la redefinition
ash.ice.loky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 10h33   #36
Uther
Expert Confirmé Sénior
 
Avatar de Uther
 
Homme
Inscription : avril 2002
Messages : 2 678
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2002
Messages : 2 678
Points : 5 107
Points : 5 107
Citation:
Envoyé par Deadpool Voir le message
Ben franchement un tableau ou une List, ça se gère presque pareil. Moi je proposerais même d'ajouter ce qu'il faut aux tableaux pour qu'ils puissent être utilisés comme n'importe quelle Collection, car un tableau ce n'est qu'une Collection particulière de taille fixe (implémentation de l'interface Collection et pourquoi pas ajout d'une sous interface concernant les collections de taille fixe).
Dans l'utilisation faite par le programmeur, peut-être. Mais techniquement, il y a de sacrées différences. A mon avis, il ne faut pas mélanger ces concepts.

Citation:
pourquoi dans une HasMap je ne peux pas écrire maHashMap.maKey
et monTableau.3 ou maList.8
On parle en réalité de chemins non ?
Mon dieu, quelle horreur. Les points sont sencés porter sur des éléments déclarés dans une classe et je ne souhaite en aucun cas les voir servir à autre chose(déjà que j'hésite sur son utilisation pour les properties), même si c'est vrai que la notion de Map s'y porte plutot bien.
C++ qui permet de redéfinir presque tout, n'autorise par à redéfinir le point.


Après avoir longtemps hésité, je dirais plutôt non car je pense qu'il faut éviter d'avoir des syntaxe commune pour des opérations différentes comme dans certains langages ou parfois on se demande vraiment ce qu'on est en train de manipuler.
Uther est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 11h28   #37
Muscador
Membre du Club
 
Inscription : août 2002
Messages : 67
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 67
Points : 53
Points : 53
Qu'est ce que ça apporte?

Modifier le langage, pourquoi pas si ça apporte un vrai plus.

Mais là, quel est l'intérêt, c'est du détail?
Muscador est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 13h35   #38
dingoth
Membre Expert
 
Inscription : mai 2004
Messages : 1 253
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 1 253
Points : 1 298
Points : 1 298
Pour... avec une nuance.

J'utilise des multimaps et dans ce cas précis, je ne vois pas comment implémenter l'interface correctement : le code mmap[clé] = valeur ajouterait ou remplacerait l'élément courant ?

Là où les méthode put() et set() ont leur spécificité (dans une multimap), écrire
Code :
1
2
mmap[clé] = valeur1;
mmap[clé] = valeur2;
serait lui réellement illisible pour l'usage qu'on en fait, contrairement à
Code :
1
2
mmap.put(clé,valeur1);
mmap.put(clé,valeur2);
dingoth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 14h28   #39
abriotde
Membre habitué
 
Homme
Développeur informatique
Inscription : juillet 2007
Messages : 146
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2007
Messages : 146
Points : 146
Points : 146
Par défaut Pour

Pour.Ca simplifie les get. C'est quand même plus clair
function[in]=out;
que
function(in, out); ou l'on ne sait pas qui va dans quoi et si in est modifier au passage.
abriotde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2008, 18h13   #40
fabszn
Membre Expert
 
Avatar de fabszn
 
Homme Fabrice Sznajderman
Développeur Java
Inscription : mars 2002
Messages : 974
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Sznajderman
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : mars 2002
Messages : 974
Points : 1 676
Points : 1 676
Hello,

Je suis plutot contre, Je trouve aussi que celà risque d'amener de la confusion (tableau/list) à la lecture du code... et aussi le lien avec de la Javadoc peut devenir difficile.

Cette amélioration n'apporte pas grand chose d'un point de vue technique.

L'introduction du forEach était une innovation plus intéressante.
__________________
@+

Fabszn
Twitter : @fsznajderman

N'oubliez pas le bouton
Comment bien poser ses questions sur le forum

fabszn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h24.


 
 
 
 
Partenaires

Hébergement Web