Bonjour.

J'ai dans mon programme une ArrayList (listeMonot_PuissÉlec) dont les ± 380 éléments (objets) sont d'une classe que j'ai conçue (DonnéesQuartHor). Cette classe comporte entre autres une propriété de type BigDecimal (puissÉlec). Les éléments sont ordonnés par ordre croissant de cette propriété.
Il me faut trouver l'objet de cette ArrayList qui est situé juste après celui dont la propriété 'puissÉlec' a une valeur connue. Par exemple :

1) Soit que la 'puissÉlec' recherchée dans la 'listeMonot_PuissÉlec' = 35,5
et que quelques objets 'donnéesQuartHor' de cette liste valent :
121 : [ ... , 35 , ... , ...]
122 : [ ... , 35,5 , ... , ...]
123 : [ ... , 36 , ... , ...]
124 : [ ... , 36,5 , ... , ...]
35,5 se trouve dans la liste. La 'puisÉlec' de l'élément que ma fonction 'puissÉlec_ÉgaleOuJusteAuDessus' doit me renvoyer est 36 .

2) Soit que la 'puissÉlec' recherchée dans la 'listeMonot_PuissÉlec' = 35,2
et que quelques objets 'donnéesQuartHor' de cette liste valent :
121 : [ ... , 35 , ... , ...]
122 : [ ... , 35,5 , ... , ...]
123 : [ ... , 36 , ... , ...]
124 : [ ... , 36,5 , ... , ...]
35,5 ne se trouve pas dans la liste -> chercher la puissÉlec juste au-dessus. La 'puisÉlec' de l'élément que ma fonction 'puissÉlecÉgaleOuJusteAuDessus' doit me renvoyer est 35,5 .

L'IDE de NetBeans me conseille d'employer le 'enhanced for-loop' pour objets de type Collection. Je comprends qu'il m'est conseillé d'élaborer une solution avec les particularités de 'Iterator', etc.

Mon soucis est que les valeurs de 'puissÉlec' ne sont pas d'une propriété contenue directement de l'ArrayList 'listeMonot_PuissÉlec', mais sont une propriété d'un objet 'DonnéesQuartHor' qui est l'un des éléments de l'ArrayList.
En d'autre mots, je cherche si c'est possible d'utiliser '.contains(objet)', par exemple, qui est implémentée dans la classe ArrayList ...
alors que ma méthode ne cherche pas si un un élément (puissÉlec) d'une certaine valeur ou composition se trouve directement dans mon ArrayList (listeMonot_PuissÉlec)', mais plutôt qu'elle doive chercher si une propriété (puissÉlec) d'un élément (DonnéesQuartHor) de cette ArrayList s'y trouve.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    private BigDecimal puissÉlec_ÉgaleOuJusteAuDessus(byte idxPuissÉlecLim,
              ArrayList<DonnéesQuartHor> listeMonot_PuissÉlec)
    {   
        if (listeMonot_PuissÉlec.((DonnéesQuartHor) ((BigDecimal) getPuissÉlec() ) ).
                contains( (BigDecimal) 35,2 ) ) ) ) )
        {
 
 
        }
        else
        {
 
 
        }
Autremendit : Comment bien programmer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        if (listeMonot_PuissÉnerg3.contains(élément dont  
                élément.puissÉlec.compare(échPuissÉlecLim.get(idxPuissÉlecLim) ) == 0) )
        {
Quelle piste devrais-je suivre ?
Merci d'avance pour vos suggestions.