Sebbene ci possa essere esattamente un valore massimo in una raccolta, ci può essere più di elemento che rappresenta quel valore. E.g {1, 9, 2, 9, 0}
ha valore massimo di 9
, rappresentato da entrambi gli elementi [1]
e [3]
.
Si noti che non tutte le raccolte supportano l'accesso all'indice; per esempio. un Set<Integer>
può avere un massimo significativo ma l'accesso a un elemento per indice non ha senso in esso.
Anche se limitiamo il metodo a List
, sarebbe un po 'difficile trovare un metodo per trovare indici del valore massimo che non è maldestro. È possibile restituire un elenco di indici, ma in tal caso si perderebbe il valore e in alcune raccolte, ad es. elenchi concatenati, l'accesso a un elemento per indice è lento. Poiché Java non ha una sintassi semplice per le tuple, devi restituire un tipo speciale di oggetto con .getValue()
e .getIndices()
.
Ma penso che un'operazione del genere non sia abbastanza comune per essere supportata nella libreria standard. Trovare un massimo è letteralmente 3-4 linee di codice, e il tracciamento dell'indice è di altre 1-2 righe, e non c'è molto spazio per sbagliare. Se lo fai molto, puoi inserirlo facilmente nella tua classe di utilità.