Hashtable fait ça très bien ! mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Manu wrote:
Hashtable fait ça très bien !
mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais :
Hashtable map = new Hashtable();
map.put("toto",new Vector() );
comment ajouter un element dans "toto" :
map.get("toto").addElement(monObj);
Hashtable fait ça très bien ! mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Xavier Tarrago
"Manu" a écrit dans le message de news:41ef6217$0$2187$
Manu wrote:
Hashtable fait ça très bien ! mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les cas classiques et plus rapide. Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non thread-safe mais plus rapide).
// stocker ArrayList vector = new ArrayList(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap map = new HashMap(); map.put(cle1, vector);
// ou item1 = (Item)((ArrayList)(map.get(cle1))).get(0);
Notez que avec la version 1.5 de java et la généricité, on put faire (sans garantie de la syntaxe, je ne la connais pas bien) :
ArrayList<Item> vector = new ArrayList<Item>(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap<Cle, ArrayList<Item>> map = new HashMap<ArrayList<Item>>(); map.put(cle1, vector);
et item1 = map.get(cle1).get(0)
"Manu" <pipo@pipo.com> a écrit dans le message de
news:41ef6217$0$2187$8fcfb975@news.wanadoo.fr...
Manu wrote:
Hashtable fait ça très bien !
mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais :
Hashtable map = new Hashtable();
map.put("toto",new Vector() );
comment ajouter un element dans "toto" :
map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont
les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les
cas classiques et plus rapide.
Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non
thread-safe mais plus rapide).
// stocker
ArrayList vector = new ArrayList();
vector.add(item1);
vector.add(item2);
vector.add(item3);
HastMap map = new HashMap();
map.put(cle1, vector);
"Manu" a écrit dans le message de news:41ef6217$0$2187$
Manu wrote:
Hashtable fait ça très bien ! mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les cas classiques et plus rapide. Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non thread-safe mais plus rapide).
// stocker ArrayList vector = new ArrayList(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap map = new HashMap(); map.put(cle1, vector);
// ou item1 = (Item)((ArrayList)(map.get(cle1))).get(0);
Notez que avec la version 1.5 de java et la généricité, on put faire (sans garantie de la syntaxe, je ne la connais pas bien) :
ArrayList<Item> vector = new ArrayList<Item>(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap<Cle, ArrayList<Item>> map = new HashMap<ArrayList<Item>>(); map.put(cle1, vector);
et item1 = map.get(cle1).get(0)
Manu
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
"Manu" a écrit dans le message de news:41ef6217$0$2187$
Manu wrote:
Hashtable fait ça très bien !
mon autre soucis alors est de quelle maniere recuperer mon vector si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les cas classiques et plus rapide. Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non thread-safe mais plus rapide).
// stocker ArrayList vector = new ArrayList(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap map = new HashMap(); map.put(cle1, vector);
// ou item1 = (Item)((ArrayList)(map.get(cle1))).get(0);
Notez que avec la version 1.5 de java et la généricité, on put faire (sans garantie de la syntaxe, je ne la connais pas bien) :
ArrayList<Item> vector = new ArrayList<Item>(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap<Cle, ArrayList<Item>> map = new HashMap<ArrayList<Item>>(); map.put(cle1, vector);
et item1 = map.get(cle1).get(0)
bonjour xavier,
mon probleme est que tout doit "synchronized", multi thread.
donc je ne peux utiliser Hashmap. que faire alors ?
pour ce qui est de vector, obsolete certe mais syncro ! alors que
ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
"Manu" <pipo@pipo.com> a écrit dans le message de
news:41ef6217$0$2187$8fcfb975@news.wanadoo.fr...
Manu wrote:
Hashtable fait ça très bien !
mon autre soucis alors est de quelle maniere recuperer mon vector
si je fais :
Hashtable map = new Hashtable();
map.put("toto",new Vector() );
comment ajouter un element dans "toto" :
map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont
les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les
cas classiques et plus rapide.
Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non
thread-safe mais plus rapide).
// stocker
ArrayList vector = new ArrayList();
vector.add(item1);
vector.add(item2);
vector.add(item3);
HastMap map = new HashMap();
map.put(cle1, vector);
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
"Manu" a écrit dans le message de news:41ef6217$0$2187$
Manu wrote:
Hashtable fait ça très bien !
mon autre soucis alors est de quelle maniere recuperer mon vector si je fais : Hashtable map = new Hashtable(); map.put("toto",new Vector() ); comment ajouter un element dans "toto" : map.get("toto").addElement(monObj);
Il vaut mieux utiliser HashMap qui est plus récent. Les fonctionnalités sont les mêmes, sauf que HashMap n'est pas thread-safe. C'est suffisant dans les cas classiques et plus rapide. Pour les mêmes raisons, Vector est obsolete.Il faut utiliser ArrayList (non thread-safe mais plus rapide).
// stocker ArrayList vector = new ArrayList(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap map = new HashMap(); map.put(cle1, vector);
// ou item1 = (Item)((ArrayList)(map.get(cle1))).get(0);
Notez que avec la version 1.5 de java et la généricité, on put faire (sans garantie de la syntaxe, je ne la connais pas bien) :
ArrayList<Item> vector = new ArrayList<Item>(); vector.add(item1); vector.add(item2); vector.add(item3); HastMap<Cle, ArrayList<Item>> map = new HashMap<ArrayList<Item>>(); map.put(cle1, vector);
et item1 = map.get(cle1).get(0)
Isammoc
Manu écrivait news:41ef78a7$0$6601$:
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ?
hum, Si j'ai bien compris, Hashmap est la version non synchronisé de Hashtable, donc, il faut utiliser Hashtable dans ton cas.
pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Pourquoi un remplacant de Vector, s'il existe?
De maniere générale, la version non synchronisée est plus performante que la version synchronisée (cause des poses de verrous...) mais les deux ont le meme comportement lors d'une utilisation mono thread. Si utilisation des threads il y a, alors l'unique (bonne) facon de faire est d'utiliser la version synchronisée. Sinon, risque d'empietement...
-- Isammoc
Manu <pipo@pipo.com> écrivait
news:41ef78a7$0$6601$8fcfb975@news.wanadoo.fr:
bonjour xavier,
mon probleme est que tout doit "synchronized", multi thread.
donc je ne peux utiliser Hashmap. que faire alors ?
hum, Si j'ai bien compris, Hashmap est la version non synchronisé de
Hashtable, donc, il faut utiliser Hashtable dans ton cas.
pour ce qui est de vector, obsolete certe mais syncro ! alors que
ArrayList ne l'est pas ! quel est alors le remplacant de vector en
syncrho ?
Pourquoi un remplacant de Vector, s'il existe?
De maniere générale, la version non synchronisée est plus performante que
la version synchronisée (cause des poses de verrous...) mais les deux ont
le meme comportement lors d'une utilisation mono thread.
Si utilisation des threads il y a, alors l'unique (bonne) facon de faire
est d'utiliser la version synchronisée. Sinon, risque d'empietement...
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ?
hum, Si j'ai bien compris, Hashmap est la version non synchronisé de Hashtable, donc, il faut utiliser Hashtable dans ton cas.
pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Pourquoi un remplacant de Vector, s'il existe?
De maniere générale, la version non synchronisée est plus performante que la version synchronisée (cause des poses de verrous...) mais les deux ont le meme comportement lors d'une utilisation mono thread. Si utilisation des threads il y a, alors l'unique (bonne) facon de faire est d'utiliser la version synchronisée. Sinon, risque d'empietement...
-- Isammoc
Manu
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
manu
j'utilise ca :
((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning :
warning: [unchecked] unchecked call to addElement(E) as a member of the
raw type java.util.Vector
((Vector)map.get("toto")).addElement("test");
^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas
genant en soit)
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
manu
Isammoc
Manu écrivait news:41ef7a6b$0$8009$8fcfb975 @news.wanadoo.fr:
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
<javadoc> addElement :
public void addElement(Object obj) Adds the specified component to the end of this vector, increasing its size by one. The capacity of this vector is increased if its size becomes greater than its capacity.
This method is identical in functionality to the add(Object) method (which is part of the List interface).
Parameters: obj - the component to be added. See Also: add(Object), List </javadoc>
En résumé, change le addElement en add, ca devrait le faire pareil... Et (je pense) sans warning.
manu
-- Isammoc Eh Manu! Tu descends?
Manu <pipo@pipo.com> écrivait news:41ef7a6b$0$8009$8fcfb975
@news.wanadoo.fr:
j'utilise ca :
((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning :
warning: [unchecked] unchecked call to addElement(E) as a member of the
raw type java.util.Vector
((Vector)map.get("toto")).addElement("test");
^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas
genant en soit)
<javadoc>
addElement :
public void addElement(Object obj)
Adds the specified component to the end of this vector, increasing its
size by one. The capacity of this vector is increased if its size becomes
greater than its capacity.
This method is identical in functionality to the add(Object) method
(which is part of the List interface).
Parameters:
obj - the component to be added.
See Also:
add(Object), List
</javadoc>
En résumé, change le addElement en add, ca devrait le faire pareil... Et
(je pense) sans warning.
Manu écrivait news:41ef7a6b$0$8009$8fcfb975 @news.wanadoo.fr:
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
<javadoc> addElement :
public void addElement(Object obj) Adds the specified component to the end of this vector, increasing its size by one. The capacity of this vector is increased if its size becomes greater than its capacity.
This method is identical in functionality to the add(Object) method (which is part of the List interface).
Parameters: obj - the component to be added. See Also: add(Object), List </javadoc>
En résumé, change le addElement en add, ca devrait le faire pareil... Et (je pense) sans warning.
manu
-- Isammoc Eh Manu! Tu descends?
Hervé AGNOUX
Manu wrote:
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas forcément appropriées.
-- Hervé AGNOUX http://www.diaam-informatique.com
Manu wrote:
bonjour xavier,
mon probleme est que tout doit "synchronized", multi thread.
donc je ne peux utiliser Hashmap. que faire alors ?
pour ce qui est de vector, obsolete certe mais syncro ! alors que
ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho
?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De
toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas
forcément appropriées.
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas forcément appropriées.
-- Hervé AGNOUX http://www.diaam-informatique.com
Xavier Tarrago
Ce warning vient du fait que tu es en version 5 de java (ou 1.5, c'est pareil). Tu es censé utiliser les templates. au lieu de Vector, déclare un Vector<TonType> avec TonType = le type de ce que tu veux mettre dans le Vector. Supposons que tu veux mettre des String dans le Vector:
Vector<String> v = new Vector<String>(); HashTable<String, Vector<String>> h = new HashTable<String, Vector<String>>(); h.put("mot 1", v); h.get("mot 1").add("définition 1 du mot 1"); h.get("mot 1").add("définition 2 du mot 1");
String s = h.get("mot 1").get(1); // = "définition 2 du mot 1"
Sinon, pour aller au plus pressé et supprimer directement le warnig, peut-être que tu peux essayer ((Vector<Object>)map.get("toto")).addElement(monObjet); Mais c'est dommage, les template sont très intéressants. Les déclarations sont un peu plus verbeuses, mais après, le compilateur peut vérifier les types et l'utilisation est plus simple (pas besoin de cast à rallonge...) String s = h.get("mot 1").get(1); au lieu de String s =(String)((Vector) h.get("mot 1")).get(1); // java 1.4
PS : Tout ça est à vérifier, vu que je n'utilise pas (encore) java 5. (Vivement que Eclipse le supporte). Le code ci-dessus n'a pas été compilé...
"Manu" a écrit dans le message de news:41ef7a6b$0$8009$
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
manu
Ce warning vient du fait que tu es en version 5 de java (ou 1.5, c'est
pareil). Tu es censé utiliser les templates.
au lieu de Vector, déclare un Vector<TonType> avec TonType = le type de ce
que tu veux mettre dans le Vector.
Supposons que tu veux mettre des String dans le Vector:
Vector<String> v = new Vector<String>();
HashTable<String, Vector<String>> h = new HashTable<String,
Vector<String>>();
h.put("mot 1", v);
h.get("mot 1").add("définition 1 du mot 1");
h.get("mot 1").add("définition 2 du mot 1");
String s = h.get("mot 1").get(1); // = "définition 2 du mot 1"
Sinon, pour aller au plus pressé et supprimer directement le warnig,
peut-être que tu peux essayer
((Vector<Object>)map.get("toto")).addElement(monObjet);
Mais c'est dommage, les template sont très intéressants. Les déclarations
sont un peu plus verbeuses, mais après, le compilateur peut vérifier les
types et l'utilisation est plus simple (pas besoin de cast à rallonge...)
String s = h.get("mot 1").get(1);
au lieu de
String s =(String)((Vector) h.get("mot 1")).get(1); // java 1.4
PS : Tout ça est à vérifier, vu que je n'utilise pas (encore) java 5.
(Vivement que Eclipse le supporte). Le code ci-dessus n'a pas été compilé...
"Manu" <pipo@pipo.com> a écrit dans le message de
news:41ef7a6b$0$8009$8fcfb975@news.wanadoo.fr...
j'utilise ca :
((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning :
warning: [unchecked] unchecked call to addElement(E) as a member of the
raw type java.util.Vector
((Vector)map.get("toto")).addElement("test");
^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas
genant en soit)
Ce warning vient du fait que tu es en version 5 de java (ou 1.5, c'est pareil). Tu es censé utiliser les templates. au lieu de Vector, déclare un Vector<TonType> avec TonType = le type de ce que tu veux mettre dans le Vector. Supposons que tu veux mettre des String dans le Vector:
Vector<String> v = new Vector<String>(); HashTable<String, Vector<String>> h = new HashTable<String, Vector<String>>(); h.put("mot 1", v); h.get("mot 1").add("définition 1 du mot 1"); h.get("mot 1").add("définition 2 du mot 1");
String s = h.get("mot 1").get(1); // = "définition 2 du mot 1"
Sinon, pour aller au plus pressé et supprimer directement le warnig, peut-être que tu peux essayer ((Vector<Object>)map.get("toto")).addElement(monObjet); Mais c'est dommage, les template sont très intéressants. Les déclarations sont un peu plus verbeuses, mais après, le compilateur peut vérifier les types et l'utilisation est plus simple (pas besoin de cast à rallonge...) String s = h.get("mot 1").get(1); au lieu de String s =(String)((Vector) h.get("mot 1")).get(1); // java 1.4
PS : Tout ça est à vérifier, vu que je n'utilise pas (encore) java 5. (Vivement que Eclipse le supporte). Le code ci-dessus n'a pas été compilé...
"Manu" a écrit dans le message de news:41ef7a6b$0$8009$
j'utilise ca : ((Vector)map.get("toto")).addElement(monObjet);
mais le probleme est que j'obtiens un warning : warning: [unchecked] unchecked call to addElement(E) as a member of the raw type java.util.Vector ((Vector)map.get("toto")).addElement("test"); ^
et je ne sais pas comment annuler ce warning (meme si cela n'est pas genant en soit)
manu
Jocelyn
Salut, J'ai juste 2 remarques a faire concernant le sujet discuté: 1. Il est possible d'obtenir des versions synchronisees des collections non-depreciees via les methodes Collections.synchronizedXXX(). Mieux vaut utiliser ca que les classes Vector et Hashtable a mon sens. 2. Effectivement Herve a raison, tu peux avoir interet a coder toi meme la synchro afin d'obtenir une granularite + fine que de prendre un truc synchronise. 3. (he oui finalement j'en ai 3)Dans Java 5, il existe un nouvel ensemble de classes pour aider dans la gestion du multithread, si tu utilises cette version je te conseille de jeter un oeil sur: http://java.sun.com/j2se/1.5.0/docs/guide/concurrency/overview.html
Cette fois c'est fini ! ++
Manu wrote:
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas forcément appropriées.
Salut,
J'ai juste 2 remarques a faire concernant le sujet discuté:
1. Il est possible d'obtenir des versions synchronisees des
collections non-depreciees via les methodes
Collections.synchronizedXXX(). Mieux vaut utiliser ca que les classes
Vector et Hashtable a mon sens.
2. Effectivement Herve a raison, tu peux avoir interet a coder toi meme
la synchro afin d'obtenir une granularite + fine que de prendre un truc
synchronise.
3. (he oui finalement j'en ai 3)Dans Java 5, il existe un nouvel
ensemble de classes pour aider dans la gestion du multithread, si tu
utilises cette version je te conseille de jeter un oeil sur:
http://java.sun.com/j2se/1.5.0/docs/guide/concurrency/overview.html
Cette fois c'est fini !
++
Manu wrote:
bonjour xavier,
mon probleme est que tout doit "synchronized", multi thread.
donc je ne peux utiliser Hashmap. que faire alors ?
pour ce qui est de vector, obsolete certe mais syncro ! alors que
ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho
?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De
toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas
forcément appropriées.
Salut, J'ai juste 2 remarques a faire concernant le sujet discuté: 1. Il est possible d'obtenir des versions synchronisees des collections non-depreciees via les methodes Collections.synchronizedXXX(). Mieux vaut utiliser ca que les classes Vector et Hashtable a mon sens. 2. Effectivement Herve a raison, tu peux avoir interet a coder toi meme la synchro afin d'obtenir une granularite + fine que de prendre un truc synchronise. 3. (he oui finalement j'en ai 3)Dans Java 5, il existe un nouvel ensemble de classes pour aider dans la gestion du multithread, si tu utilises cette version je te conseille de jeter un oeil sur: http://java.sun.com/j2se/1.5.0/docs/guide/concurrency/overview.html
Cette fois c'est fini ! ++
Manu wrote:
bonjour xavier, mon probleme est que tout doit "synchronized", multi thread. donc je ne peux utiliser Hashmap. que faire alors ? pour ce qui est de vector, obsolete certe mais syncro ! alors que ArrayList ne l'est pas ! quel est alors le remplacant de vector en syncrho ?
Il vaut mieux synchroniser toi même, en te donnant un objet verrou. De toutes façons les synchronisations sur les Vectors ou HashMaps ne sont pas forcément appropriées.