Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
547 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  21  22  23  24  25  26
Auteur Sujet :

[Java] Le topic-passage-obligé pour débutants !

n°1930874
koskoz
They see me trollin they hatin
Posté le 10-10-2009 à 18:01:50  profilanswer
 

Reprise du message précédent :
Est-ce que l'on peut avoir un enum du même nom que la class qui le contient ?


---------------
Blabla Revival, le forum qui envoie du caca | Blog | Twitter | Stats
mood
Publicité
Posté le 10-10-2009 à 18:01:50  profilanswer
 

n°1932848
igarimasho
Posté le 18-10-2009 à 15:21:53  profilanswer
 

Bon sang mais c'est quoi l'équivalent d'un Ruby hash en java, i.e: hash = {"login" => "igarimasho", "password" => "mdp"}?  
 
HashMap, HashSet, Hashtable, Set, List, etc, y'a vraiment besoin de tous ces trucs?  Je suis confus [:pingouino]

n°1932849
Antibug
AntiTerminatux
Posté le 18-10-2009 à 15:24:43  profilanswer
 

Une hashmap c'est une liste et une hashtable c'est une table. Donc dans ton cas je dirais une table avec une clef login à qui correspond un mdp.
 
Après attend l'avis des autres :o.


---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1932850
igarimasho
Posté le 18-10-2009 à 15:32:57  profilanswer
 

Je pensais à:
 
Map<String, String> hash = HashMap<String, String>();

n°1932851
koskoz
They see me trollin they hatin
Posté le 18-10-2009 à 15:36:23  profilanswer
 
n°1932852
Antibug
AntiTerminatux
Posté le 18-10-2009 à 15:38:29  profilanswer
 

igarimasho a écrit :

Je pensais à:
 
Map<String, String> hash = HashMap<String, String>();


Ben ouais, c'est une table une Hasmap, ta clef serait une String qui renverrait vers une autre String.


---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1932854
igarimasho
Posté le 18-10-2009 à 15:52:38  profilanswer
 

Antibug a écrit :

Une hashmap c'est une liste et une hashtable c'est une table.


 

Antibug a écrit :


Ben ouais, c'est une table une Hasmap, ta clef serait une String qui renverrait vers une autre String.


 [:urd]

n°1932857
Masklinn
í dag viðrar vel til loftárása
Posté le 18-10-2009 à 16:01:32  profilanswer
 

igarimasho a écrit :

Bon sang mais c'est quoi l'équivalent d'un Ruby hash en java, i.e: hash = {"login" => "igarimasho", "password" => "mdp"}?  
 
HashMap, HashSet, Hashtable, Set, List, etc, y'a vraiment besoin de tous ces trucs?  Je suis confus [:pingouino]


HashMap, avec Map en interface.
 
List ça correspond à Array en Ruby, et Ruby a pas (à ma connaissance) de set.
 
HashSet c'est une implémentation de Set basée sur les mêmes principes que HashMap, donc tu t'en fous.

koskoz a écrit :

Là hashtable a l'air de faire ce que tu demandes :
http://java.sun.com/j2se/1.4.2/doc [...] table.html


NOOOOOOOOOOOOOOO [:prozac]  

igarimasho a écrit :

Je pensais à:
 
Map<String, String> hash = HashMap<String, String>();


Yup, c'est ça. Après tu peux regarder les autres implés de Map (genre TreeMap), elles vont avoir des avantages & inconvénients par rapport à une HashMap en terme de perfs (les profils de perfs sont différents)


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1932858
Masklinn
í dag viðrar vel til loftárása
Posté le 18-10-2009 à 16:16:01  profilanswer
 

Accessoirement igarimasho je recommande fortement le double brace initialization pour remplir tes Maps (à la place d'un Hash littéral en Ruby):
 

Code :
  1. hash = {"login" => "igarimasho", "password" => "mdp"}


 
En java classique:

Code :
  1. Map<String, String> hash = new HashMap<String, String>();
  2. hash.put("login", "igarimasho" );
  3. hash.put("password", "mdp" );


en utilisant le double brace init:

Code :
  1. Map<String, String> hash = new HashMap<String, String() {{
  2.    put("login", "igarimasho" );
  3.    put("password", "mdp" );}}


 
C'est quand même moins moche :)
 
Et pour avoir des trucs équivalents aux map/collect/filter: http://code.google.com/p/google-collections/


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1932859
koskoz
They see me trollin they hatin
Posté le 18-10-2009 à 16:16:29  profilanswer
 
n°1932861
Masklinn
í dag viðrar vel til loftárása
Posté le 18-10-2009 à 16:31:58  profilanswer
 

koskoz a écrit :


 
Explique moi :jap:


Hashtable et Vector sont les collections "originelles".
 
Avec Java 1.2, Sun a ajouté plein de choses sous l'égide du Collections Framework, entre autres une chiée d'interfaces, de meilleurs nommages, des classes pluggable pour chaque interface et une bordée de composeurs. Mais ils ne pouvaient/voulaient pas dégager Hashtable ou Vector (entre autres parce que ceux-ci sont utilisés par les toolkits graphiques), donc ils les ont laissés et leur ont ajouté les interfaces & méthodes Collections pour qu'ils soient utilisables. C'est pourquoi Hashtable a 20 méthodes alors que HashMap n'en a que 13, que Hashtable a des méthodes complètement redondantes (elements() et values(), keys() et keySet(), contains() et containsKey()) et que Hashtable renvoie des Enumerator et non des Iterator de certaines de ses méthodes (notes que Vector fait encore plus peur par rapport à ArrayList, 42 méthodes contre 20…).
 
Inconvénients de Hashtable et Vector:

  • Les interfaces sont moches, leur présence est habituellement le signe de vieux code, AMA c'est un "code smell" (here be dragons toussa), surtout quand ça utilise
  • Ils sont toujours synchronisés, en dessous de Java 1.6 ça veut dire perf hit quand tu les utilises (à cause des locks). Avec les collections plus modernes, tu les compose avec Collections.synchronized* si et seulement si tu as besoin qu'elles soient synchronisées
  • Redondantes avec HashTable et ArrayList, avec un nommage moins clair.


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1932862
igarimasho
Posté le 18-10-2009 à 16:40:13  profilanswer
 

Explication très claire  [:implosion du tibia]  
 
Merci Masklinn  :jap:

n°1932863
koskoz
They see me trollin they hatin
Posté le 18-10-2009 à 16:43:04  profilanswer
 

Oui, merci :jap:
Edit : ils auraient plus marqué "deprecited" et rediriger vers hashmap, comme c'est le cas dans la doc de certains framework qui te conseils d'utiliser les nouvelles classes.

Message cité 1 fois
Message édité par koskoz le 18-10-2009 à 16:44:18

---------------
Blabla Revival, le forum qui envoie du caca | Blog | Twitter | Stats
n°1932865
Masklinn
í dag viðrar vel til loftárása
Posté le 18-10-2009 à 16:51:14  profilanswer
 

koskoz a écrit :

Edit : ils auraient plus marqué "deprecited" et rediriger vers hashmap


Oui, mais ils ne l'ont pas fait parce que ces classes sont toujours utilisées explicitement à travers Swing (typiquement, JTree dont les 3 constructeurs "collections" prennent un array, un Vector ou une Hashtable :/)


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1932866
Jubijub
Parce que je le VD bien
Posté le 18-10-2009 à 17:01:40  profilanswer
 

Masklinn a écrit :


Oui, mais ils ne l'ont pas fait parce que ces classes sont toujours utilisées explicitement à travers Swing (typiquement, JTree dont les 3 constructeurs "collections" prennent un array, un Vector ou une Hashtable :/)


 
Figure 1 : Swing sent la merde, mais on le savait


---------------
Quand on voit ce qu'on voit, et qu'on entend ce qu'on entend, ben on a bien raison de penser ce qu'on pense :o
n°1932867
Masklinn
í dag viðrar vel til loftárása
Posté le 18-10-2009 à 17:08:49  profilanswer
 

Jubijub a écrit :

Figure 1 : Swing sent la merde, mais on le savait


Remarques il y a sûrement d'autres vieilles APIs bien moches où c'est encore utilisé, mais Swing est un exemple classique :D

 

edit: http://java.sun.com/j2se/1.5.0/doc [...] ector.html et http://java.sun.com/j2se/1.5.0/doc [...] table.html

 

c'est javax.swing qui gagne :D

 

edit 2: sur Enumeration, il y a un peu plus de concurrence: http://java.sun.com/j2se/1.5.0/doc [...] ation.html


Message édité par Masklinn le 18-10-2009 à 17:11:53

---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1932894
Antibug
AntiTerminatux
Posté le 18-10-2009 à 19:28:33  profilanswer
 


 
Jma emmêlé les pinceaux, désolé. Ca m'apprendra à répondre sur le forum en révisant des maths :o


---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1932926
the real m​oins moins
Posté le 18-10-2009 à 21:53:53  profilanswer
 

Antibug a écrit :

Une hashmap c'est une liste


wat [:pingouino]


---------------
I might have been talking about a sledgehammer earlier, but not in any smashing context
n°1932936
Antibug
AntiTerminatux
Posté le 18-10-2009 à 22:26:57  profilanswer
 

C'était ma journée boulette de maths c'est pas grave, j'aurais mieux fait de me taire [:prozac].
Arraylist.


---------------
Feed-Back | Moniteur officiel des essais statiques | Groupement Anti Terminatux | Lien leboncoin -> SPAM d'après Terminatux
n°1933330
igarimasho
Posté le 19-10-2009 à 16:56:27  profilanswer
 

A tout hasard est-ce qu'une classe peut avoir le même nom qu'un package genre, dans le fichier Application.java:

Code :
  1. package chemin.de.mon.package.application;
  2. class Application {
  3.   ...
  4. }


Chez moi j'ai pas de problème à la compil, mais au runtime, j'ai un petit souci et je me demandais si potentiellement ça pouvait venir de là.

n°1933332
the real m​oins moins
Posté le 19-10-2009 à 16:59:49  profilanswer
 

ça ne devrait pas poser de problème


---------------
I might have been talking about a sledgehammer earlier, but not in any smashing context
n°1933342
igarimasho
Posté le 19-10-2009 à 17:08:00  profilanswer
 

Merci. Donc ça c'est fait.

n°1933374
igarimasho
Posté le 19-10-2009 à 17:47:37  profilanswer
 

Pour parser un fichier yaml, vous utilisez quoi? Si possible un truc simple  :whistle:

n°1933376
Masklinn
í dag viðrar vel til loftárása
Posté le 19-10-2009 à 17:50:28  profilanswer
 

igarimasho a écrit :

Pour parser un fichier yaml, vous utilisez quoi? Si possible un truc simple  :whistle:


T'es pas au courant que parser du yaml depuis java c'est interdit? Faut tout faire en XML.


---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1933396
igarimasho
Posté le 19-10-2009 à 18:24:03  profilanswer
 

Ouais ben peau d'zob, j'ai un fichier yaml à parser et pis c'est tout  :na:  
 
Je vais tester SnakeYAML et je verrais bien si un vortex mystérieux m'englouti.

n°1933458
igarimasho
Posté le 19-10-2009 à 21:36:29  profilanswer
 

Il me saoule tomcat à mettre en cache des trucs dans work/, y'a pas moyen de désactiver? J'ai tenté ça dans web.xml:

Code :
  1. <init-param>
  2.   <param-name>development</param-name>
  3.   <param-name>true</param-name>
  4. </init-param>


Il m'a limite vomi dessus  :sweat:

n°1933463
the real m​oins moins
Posté le 19-10-2009 à 21:41:32  profilanswer
 

et tu sortais cette bonne idée d'où ? et c'est quoi ton vrai problème avec ce qu'il se passe dans work ?


---------------
I might have been talking about a sledgehammer earlier, but not in any smashing context
n°1933469
igarimasho
Posté le 19-10-2009 à 21:59:49  profilanswer
 

Ca venait de gogle.
 
Parfois j'édite mon code source et je compile. Mes fichiers classes sont mis à jour. Je redémarre tomcat. Et là je sais que certaines modification n'ont pas été prises en compte, à cause d'un message d'erreur qui ne correspond plus au code actuel.
 
Alors j'ai trouvé un moyen de contourner le problème avec $ rm -r work/, c'est crado mais ça fait son boulot. Mais une solution plus propre serait la bienvenue.

n°1934710
igarimasho
Posté le 22-10-2009 à 22:28:12  profilanswer
 

Masklinn a écrit :

T'es pas au courant que parser du yaml depuis java c'est interdit? Faut tout faire en XML.


Bon pour parser du xml qui viendrait d'une appli RoR qu'est-ce qu'il y a de bon en java? Il me faudrait un truc qui me crée des objets (User, Product, Item, ...) à partir du xml, sans avoir à taper plein de code inutile comme pour hibernate par exemple.

n°1934712
MEI
|DarthPingoo(tm)|
Posté le 22-10-2009 à 22:39:58  profilanswer
 

igarimasho a écrit :


Bon pour parser du xml qui viendrait d'une appli RoR qu'est-ce qu'il y a de bon en java? Il me faudrait un truc qui me crée des objets (User, Product, Item, ...) à partir du xml, sans avoir à taper plein de code inutile comme pour hibernate par exemple.


Hibernate comparé a un parsing XML manuel c'est beaucoup moins verbeux.
 
Sinon deux solutions peux couteuses en ligne de code :
- Utiliser du CORBA ou assimilé. (mais bon c'est usine à gaz)
- Plutôt que de sortir du XML "à la main", utilisé des Web Services. Genre du SOAP, un bon client SOAP grace au WSDL te ressortira une instance d'objet.


---------------
| Intel Xeon X3370 - 8GB DDR2-800 - ATI Radeon HD 5870 1GB | Intel Core i7-2630QM - 4GB DDR3-1333 - NVIDIA GeForce GT 550M 1GB |
n°1936144
igarimasho
Posté le 29-10-2009 à 11:37:44  profilanswer
 

J'arrive pas à former une regexp en java. Comment transformer la suivante ruby-compliant en java?

Code :
  1. /\A([\w\-\.]+)/.match(email)[1]


C'est pour extraire la partie avant le @ d'un email.
 
J'ai tenté ça avec échec:

Code :
  1. email.split("[\w\-\.]+" )[0]


Il aime pas le point apparemment.

n°1936147
Jubijub
Parce que je le VD bien
Posté le 29-10-2009 à 11:41:19  profilanswer
 

poste le message d'erreur complet ? ;)


---------------
Quand on voit ce qu'on voit, et qu'on entend ce qu'on entend, ben on a bien raison de penser ce qu'on pense :o
n°1936150
igarimasho
Posté le 29-10-2009 à 11:45:35  profilanswer
 

Citation :

illegal escape character


J'ai mis double antislash, et on dirait que ça marche, m'enfin le compilateur ne me crache plus à la figure. C'est bizarre ces double-slashs c'est tout moche:

Code :
  1. email.split("[\\w\\-\\.]+" )[0]


 
C'est bon là? Y'a pas un testeur de regexp pour java quelque part? Genre rubular pour ruby?

Message cité 1 fois
Message édité par igarimasho le 29-10-2009 à 11:46:00
n°1936165
MEI
|DarthPingoo(tm)|
Posté le 29-10-2009 à 12:08:22  profilanswer
 

igarimasho a écrit :

Citation :

illegal escape character


J'ai mis double antislash, et on dirait que ça marche, m'enfin le compilateur ne me crache plus à la figure. C'est bizarre ces double-slashs c'est tout moche:

Code :
  1. email.split("[\\w\\-\\.]+" )[0]


 
C'est bon là? Y'a pas un testeur de regexp pour java quelque part? Genre rubular pour ruby?


c'est normale de banalisé un \ dans une chaine jusque là...
 
par contre pour extraire la partie avant un @ d'un email, vu qu'on sait qu'il n'y a forcement qu'un seul @... tu fait juste un substr et voila quoi... :o au pire tu peut verifier s'ils y a plusieurs @ dedans avant pour etre sur ;)


---------------
| Intel Xeon X3370 - 8GB DDR2-800 - ATI Radeon HD 5870 1GB | Intel Core i7-2630QM - 4GB DDR3-1333 - NVIDIA GeForce GT 550M 1GB |
n°1936185
igarimasho
Posté le 29-10-2009 à 13:37:19  profilanswer
 

Pas bête le coup du indexOf + substr  :sol:  
 
par contre l'explication du \ est incompréhensible  [:urd]

n°1936201
MEI
|DarthPingoo(tm)|
Posté le 29-10-2009 à 14:05:49  profilanswer
 

igarimasho a écrit :

Pas bête le coup du indexOf + substr  :sol:  
 
par contre l'explication du \ est incompréhensible  [:urd]


C'est simple, en RegExp les "wildcards" sont genre \w, \u des truc du genres pour definir les caractère alphabétique, les majuscules, etc. Il se trouve qu'en Java le "\" est le caractère de banalisation des string (ex \n pour le retour chariot). Du coup dans une chaine il a toujours fallu doubler le \ pour avoir une chaine qui elle le contient effectivement.


---------------
| Intel Xeon X3370 - 8GB DDR2-800 - ATI Radeon HD 5870 1GB | Intel Core i7-2630QM - 4GB DDR3-1333 - NVIDIA GeForce GT 550M 1GB |
n°1936202
igarimasho
Posté le 29-10-2009 à 14:06:42  profilanswer
 

Ok :jap:

n°1936248
the real m​oins moins
Posté le 29-10-2009 à 15:46:05  profilanswer
 

igarimasho a écrit :

[..]regexp[..]
C'est pour extraire la partie avant le @ d'un email.


 [:jeanlucpicard]

 

quelle que soit la solution, pour ce genre de conneries, t'écris un testcase pour ta methode et tu la modifies jusqu'a ce que tout soit vert :O

 



Message édité par the real moins moins le 29-10-2009 à 15:46:23

---------------
I might have been talking about a sledgehammer earlier, but not in any smashing context
n°1936838
igarimasho
Posté le 01-11-2009 à 19:20:20  profilanswer
 

En pratique Spring ça sert à quoi? J'ai lu sa page wikipedia, mais ça fait un peu page de pub, genre c'est trop bien, trop facile. Un peu évasif tout ça :/

n°1936840
Masklinn
í dag viðrar vel til loftárása
Posté le 01-11-2009 à 19:27:24  profilanswer
 

igarimasho a écrit :

En pratique Spring ça sert à quoi? J'ai lu sa page wikipedia, mais ça fait un peu page de pub, genre c'est trop bien, trop facile. Un peu évasif tout ça :/


Il y a 2 facettes à spring:

 
  • Un framework d'Inversion of Control/Dependency Injection (en gros, séparation du graphe de création des objets — géré par le framework de DI — et du graphe d'appel/d'utilisation des objets afin de mieux découpler les systèmes et les rendre plus simples à tester & plugger). Google Guice est un concurrent (souvent plus simple et plus pratique) à cette partie.
  • Tout un tas de libs diverses et variées pour faire plein de trucs.


Message édité par Masklinn le 01-11-2009 à 19:28:07

---------------
Being constantly subjected to something makes you somewhat immune to it, like Brits and misery. -- Craspology
n°1944752
koskoz
They see me trollin they hatin
Posté le 25-11-2009 à 21:13:44  profilanswer
 

Il semblerait que j'ai un problème de lecture/ecriture simultané dans une arraylist.
 

Code :
  1. public void distribueCourrier() {
  2.     synchronized (boiteAuxLettres) {
  3.         for (Courrier<?> c : this.boiteAuxLettres) {
  4.             c.getDestinataire().recoitCourrier(c);
  5.         }
  6.         this.boiteAuxLettres.clear();
  7.     }        
  8. }


 

Code :
  1. if (this.courrierADistribuer())
  2.     this.distribueCourrier();
  3.  
  4. écriture dans l'arraylist


 
Il semblerait que ma liste soit en train d'être vidée en même temps que je la remplis.
Après quelques recherches j'ai trouvé la fonction synchronized mais ça n'a pas l'effet attendu et j'ai toujours une NullConcurrentException.


---------------
Blabla Revival, le forum qui envoie du caca | Blog | Twitter | Stats
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  21  22  23  24  25  26

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Java] Outil de gestion de "composants"; GraphEdit "like"[Java/xml] Caractères à la con ds un .xml généré en dom
Cryptage md5 & javaGénération d'images en Java (server side)
[Java] [Resolu] Erreur ODBC État de curseur non valide[JAVA] caractères accentué différents selon OS
[JAVA] Pb affichage caractèrecréer un répertoire en java
copier-coller en javapassage de c++ a php
Plus de sujets relatifs à : [Java] Le topic-passage-obligé pour débutants !


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware