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

 


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

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

n°1932850
igarimasho
Posté le 18-10-2009 à 15:32:57  profilanswer
 

Reprise du message précédent :
Je pensais à:
 
Map<String, String> hash = HashMap<String, String>();

mood
Publicité
Posté le 18-10-2009 à 15:32:57  profilanswer
 

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

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


---------------
Twitter
n°1932854
igarimasho
Posté le 18-10-2009 à 15:52:38  profilanswer
 
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)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1932859
koskoz
They see me trollin they hatin
Posté le 18-10-2009 à 16:16:29  profilanswer
 

masklinn a écrit :


NOOOOOOOOOOOOOOO [:prozac]  


 
Explique moi :jap:


---------------
Twitter
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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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

---------------
Twitter
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 :/)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le 18-10-2009 à 16:51:14  profilanswer
 

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


---------------
Jubi Photos : Flickr - 500px
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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1932926
the real m​oins moins
Posté le 18-10-2009 à 21:53:53  profilanswer
 


wat [:pingouino]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
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


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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 ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
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.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
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 ? ;)


---------------
Jubi Photos : Flickr - 500px
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 ;)


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
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.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
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

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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.


---------------
Twitter
n°1944775
boulax
Inserer phrase hype en anglais
Posté le 25-11-2009 à 23:18:36  profilanswer
 

List list = Collections.synchronizedList(new ArrayList()) ?


---------------
Posté depuis des chiottes, sales. Me gusta.
n°1944782
the real m​oins moins
Posté le 25-11-2009 à 23:49:33  profilanswer
 

bon, déjà, NullConcurrentException, ça existe pas. Ensuite, on va parier que recoitCourrier(c) fait un truc genre c.getBoiteAuxLettres() et va pipoter la liste en cours d'iteration.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1944814
koskoz
They see me trollin they hatin
Posté le 26-11-2009 à 09:32:19  profilanswer
 

boulax a écrit :

List list = Collections.synchronizedList(new ArrayList()) ?

 

Je vais regarder ça :jap:

 
the real moins moins a écrit :

bon, déjà, NullConcurrentException, ça existe pas. Ensuite, on va parier que recoitCourrier(c) fait un truc genre c.getBoiteAuxLettres() et va pipoter la liste en cours d'iteration.

 

Voilà, c'est ça.
Pour l'exception je ne suis plus sûr, il faudrait que je relance le bouzin.


Message édité par koskoz le 26-11-2009 à 09:32:38

---------------
Twitter
mood
Publicité
Posté le   profilanswer
 

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

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 !


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