Recherche d'une approche optimisée pour trouver les valeurs minimales et maximales dans un tableau
La tâche d'identifier les valeurs minimales et maximales dans un tableau semble comme un exercice simple, comme l'illustre l'extrait de code fourni :
// Sample function to find maximum value in an array of chars private static int maxValue(char[] chars) { int max = chars[0]; for (int ktr = 0; ktr < chars.length; ktr++) { if (chars[ktr] > max) { max = chars[ktr]; } } return max; }
Cependant, une question se pose : existe-t-il une approche plus efficace déjà disponible dans les bibliothèques Java existantes ?
Exploiter Commons Lang et Collections
En présentant les méthodes min/max de Commons Lang's ArrayUtils et Collections, une solution pratique émerge :
import java.util.Arrays; import java.util.Collections; import org.apache.commons.lang.ArrayUtils; public class MinMaxValue { public static void main(String[] args) { char[] a = {'3', '5', '1', '4', '2'}; List b = Arrays.asList(ArrayUtils.toObject(a)); System.out.println(Collections.min(b)); System.out.println(Collections.max(b)); } }
Cette approche utilise la polyvalence de Arrays.asList() pour envelopper le tableau existant, permettant Collections.min() et Collections.max() pour trouver sans effort les valeurs minimales et maximales, respectivement.
Considérations d'efficacité
Il convient de noter que Arrays.asList () encapsule le tableau sans copier ses éléments, préservant ainsi l'efficacité de la mémoire. Par conséquent, cette approche convient aux scénarios où la consommation de mémoire et les performances sont préoccupantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!