|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : novembre 2009 Messages : 57 ![]() |
Bonjour,
Je crée une ArrayList et ensuite j'essaie d'appliquer la méthode removeRange La compliation m'indique que la méthode n'est pas visible et je ne parviens pas à trouver la solution Merci de me répondre Voici le code Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Nicolas Ingénieur développement logiciels Inscription : juin 2009 Messages : 1 714 ![]() |
La méthode removeRange est une méthode de niveau de visibilité "protected". Tu peux l'utiliser en procédant de cette manière :
1. Créer une classe A étendant ArrayList 2. Utiliser cette classe A à la place d'une ArrayList 3. Utiliser removeRange sur la classe A En tout cas, utilise plutôt la méthode subList. Tu peux en voir un exemple sur ce fil.
__________________
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : novembre 2009 Messages : 57 ![]() |
Ok merci explication claire mais lacune de ma part
class Chevre extends ArrayList : OK mais comment remplir Chevre avec un ArrayList : ? Chevre c = new ArrayList(); NOT OK |
|
|
00
|
|
|
#4 | |||||
![]() ![]() Nicolas Ingénieur développement logiciels Inscription : juin 2009 Messages : 1 714 ![]() |
Citation:
1. Utiliser removeRange() Code :
Code :
__________________
|
|||||
|
|
10
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 093 ![]() |
Citation:
Le système de collections de Java a déjà prévu un truc pour traiter des intervalles de List, quelles qu'elles soient (ArrayList, LinkedList, emptyList(), singletonList(), Arrays.asList(), tout.) Ce truc, c'est subList(). Il est inutile d'avoir autre chose. (Et il est vrai que les choses inutiles sont génératrices d'erreurs, ce qui, du coup, est ma foi déconseillé.) |
|
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : novembre 2009 Messages : 57 ![]() |
OK ca marche avec subList(3,8).clear();
mais pour remove(3,8); rappel : au départ , je veux constituer une collection de Chevre pour l'occasion : ArrayList <Chevre> c = new ArrayList<Chevre>(); J'ajoute des éléments ... et je souhaite effacer les elements de 3 à 8 Tu extends la classe Chevre et tu redéfinis removeRange avec super Jusque là OK mais ta ligne ArrayListCustom array = new ArrayListCustom(); ne permet pas de constituer une collection |
|
|
00
|
|
|
#7 |
![]() ![]() Nicolas Ingénieur développement logiciels Inscription : juin 2009 Messages : 1 714 ![]() |
Ok, donc tu as ta solution.
Je ne fais pas une surcharge de Chevre mais de ArrayList. C'est totalement différent. Pour être précis, j'aurais du également typer ma classe ArrayListCustom en conteneur de Chevre (ArrayListCustom<Chevre>) mais c'était pour l'exemple. Je t'indiquais qu'il était possible de créer une ArrayList avec des fonctionnalités supplémentaires. Après tu peux donc utiliser ArrayListCustom comme n'importe quelle ArrayList sauf qu'elle a la fonctionnalité supplémentaire "removeRange".
__________________
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : novembre 2009 Messages : 57 ![]() |
Ok en fait : 3 class
1) class Chevre 2) public class ArrayListCustom extends ArrayList : a mettre en dehors 3) programme main ArrayListCustom array = new ArrayListCustom(); ajouter des objets Chevre Voilà: c'est tout |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com