Dans le cadre du développement d'un compsant TableModel générique, j'utilise
les ArrayList. Comment puis je synchroniser mes ArrayList ? Est-ce que
ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est
pas équivalent a utilliser un Vector ? Que vaut'il mieux faire ?
Autre question qui n'a rien à voir avec les ArrayList. J'utilise dans mon
développement des fichiers XML de configuration. serait-il possible de
savoir quelle est le <!DOCTYPE> le plus adéquat pour effecter cela ? Vaut il
mieux utiliser un DOCTYPE PUBLIC ou SYSTEM. Je souhaite ne pas être trop lié
au répertoire d'origine de ma DTD. Comment puis je faire ?
Merci à tous pour vos réponses, suggestions, commentaire et remarques.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nicolas.delsaux
Bernard Koninckx wrote:
Bonjour à tous,
Dans le cadre du développement d'un compsant TableModel générique, j'utilise les ArrayList. Comment puis je synchroniser mes ArrayList ?
Avec Collections.synchronizedList()
Est-ce que ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList. En fait, elle te retourne une implémentation de List qui va se baser sur ton ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne sera pas de la même classe.
Que vaut'il mieux faire ?
Personnellement, à ta place, j'éviterais d'utiliser mes ArrayList en tant que telles, mais plutôt sous la forme de List. Ca a l'avantage de te permettre de passer instantanément à la LinkedList sans que tu aies à modifier tout ton code.
Bernard
-- Posté via http://www.webatou.net/ Usenet dans votre navigateur ! Complaints-To:
Bernard Koninckx wrote:
Bonjour à tous,
Dans le cadre du développement d'un compsant TableModel générique, j'utilise
les ArrayList. Comment puis je synchroniser mes ArrayList ?
Avec Collections.synchronizedList()
Est-ce que
ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est
pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList. En
fait, elle te retourne une implémentation de List qui va se baser sur ton
ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne
sera pas de la même classe.
Que vaut'il mieux faire ?
Personnellement, à ta place, j'éviterais d'utiliser mes ArrayList en tant
que telles, mais plutôt sous la forme de List. Ca a l'avantage de te
permettre de passer instantanément à la LinkedList sans que tu aies à
modifier tout ton code.
Bernard
--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To: abuse@webatou.net
Dans le cadre du développement d'un compsant TableModel générique, j'utilise les ArrayList. Comment puis je synchroniser mes ArrayList ?
Avec Collections.synchronizedList()
Est-ce que ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList. En fait, elle te retourne une implémentation de List qui va se baser sur ton ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne sera pas de la même classe.
Que vaut'il mieux faire ?
Personnellement, à ta place, j'éviterais d'utiliser mes ArrayList en tant que telles, mais plutôt sous la forme de List. Ca a l'avantage de te permettre de passer instantanément à la LinkedList sans que tu aies à modifier tout ton code.
Bernard
-- Posté via http://www.webatou.net/ Usenet dans votre navigateur ! Complaints-To:
Bernard Koninckx
Merci déjà pour cette réponse. Je vais tester tout ça.
Est-ce que ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est
pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
En fait, elle te retourne une implémentation de List qui va se baser sur ton ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne sera pas de la même classe.
Bernard
Merci déjà pour cette réponse.
Je vais tester tout ça.
Est-ce que
ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe)
n'est
pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
En
fait, elle te retourne une implémentation de List qui va se baser sur ton
ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne
sera pas de la même classe.
Merci déjà pour cette réponse. Je vais tester tout ça.
Est-ce que ArrayList maListe = (ArrayList) Collections.synchronisedList(maListe) n'est
pas équivalent a utilliser un Vector ?
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
En fait, elle te retourne une implémentation de List qui va se baser sur ton ArrayList initiale, mais qui ne sera pas le même objet, et surtout qui ne sera pas de la même classe.
Bernard
Jean Bernard Root
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon avis :-)
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique
une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit
juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon
avis :-)
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon avis :-)
Bernard Koninckx
Exactement, j'ai essayé et je me suis pris une bonne ClassCastException dans la tronche.
Bernard
"Jean Bernard Root" a écrit dans le message de news: 408d1a7e$0$503$
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon avis :-)
Exactement, j'ai essayé et je me suis pris une bonne ClassCastException dans
la tronche.
Bernard
"Jean Bernard Root" <biroute@boursorama.com> a écrit dans le message de
news: 408d1a7e$0$503$636a15ce@news.free.fr...
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique
une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit
juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon
avis :-)
Exactement, j'ai essayé et je me suis pris une bonne ClassCastException dans la tronche.
Bernard
"Jean Bernard Root" a écrit dans le message de news: 408d1a7e$0$503$
Non : synchronizedList te retourne une List, et non une ArrayList.
C'est pour ça que j'ai casté l'objet List retourné avec (ArrayList).
Oui mais non. Qui vous dit que Collections.synchonizedList() fabrique une ArrayList à partir de votre ArrayList à vous ? Le contrat vous dit juste qu'on vous renvoie un machin qui implémente l'interface "List".
Vous vous exposez à une bonne ClassCastException dans la tronche, à mon avis :-)