kzen.dev
  • Questions
  • Tags
  • Utilisateurs
Notifications
Récompenses
Inscription
Une fois inscrit, vous serez informé des réponses et des commentaires à vos questions.
Connectez-vous
Si vous avez déjà un compte, connectez-vous pour vérifier les nouvelles notifications.
Il y aura des récompenses pour les questions, réponses et commentaires ajoutés.
Détails
Source
Editer
Nick Heiner
Nick Heiner
Question

Trouver la valeur max/min dans un tableau de primitives en utilisant Java

Il est trivial d&#8217écrire une fonction permettant de déterminer la valeur min/max d&#8217un tableau, par exemple :

/**
 * 
 * @param chars
 * @return the max value in the 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;
}

mais cela n'est-il pas déjà fait quelque part ?

167 2009-09-27T20:07:56+00:00 3
Ciro  Santilli 新疆改造中心法轮功六四事件
Ciro Santilli 新疆改造中心法轮功六四事件
Question modifiée 13 mars 2015 в 7:32
Programmation
arrays
java
algorithm
frameworks
Cette question a 1 réponse en anglais, pour les lire connectez-vous à votre compte.
Solution / Réponse
Michael Rutherfurd
Michael Rutherfurd
28 septembre 2009 в 8:43
2009-09-28T08:43:12+00:00
Détails
Source
Editer
#9519267

Utilisation de Commons Lang (pour convertir) + Collections (pour min/max)

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));
   }
}

Notez que Arrays.asList() enveloppe le tableau sous-jacent, donc il ne devrait pas être trop gourmand en mémoire et il ne devrait pas effectuer une copie sur les éléments du tableau.

Maarten Bodewes
Maarten Bodewes
Réponse modifiée 16 novembre 2013 в 1:58
162
0
Bart Kiers
Bart Kiers
27 septembre 2009 в 8:10
2009-09-27T20:10:15+00:00
Détails
Source
Editer
#9519265

Oui, cela se fait dans la classe [Collections][1]. Notez que vous devrez convertir manuellement votre tableau de chars primitifs en Character[].

Une courte démonstration :

import java.util.*;

public class Main {

    public static Character[] convert(char[] chars) {
        Character[] copy = new Character[chars.length];
        for(int i = 0; i < copy.length; i++) {
            copy[i] = Character.valueOf(chars[i]);
        }
        return copy;
    }

    public static void main(String[] args) {
        char[] a = {'3', '5', '1', '4', '2'};
        Character[] b = convert(a);
        System.out.println(Collections.max(Arrays.asList(b)));
    }
}

[1] : http://java.sun.com/javase/6/docs/api/java/util/Collections.html#min(java.util.Collection)

Bart Kiers
Bart Kiers
Réponse modifiée 27 septembre 2009 в 8:48
20
0
 Christoph
Christoph
27 septembre 2009 в 9:12
2009-09-27T21:12:15+00:00
Détails
Source
Editer
#9519266

Voici une classe utilitaire fournissant des méthodes min/max pour les types primitifs : Primitives.java

 Christoph
Christoph
Réponse modifiée 10 décembre 2009 в 8:32
1
0
Communautés apparentées 1
Java 🇫🇷
Java 🇫🇷
2 utilisateurs
Discutons de Java, de ses framework et de son utilisation Retrouvez d'autres groupes de développeurs francophones sur @dev_fr
Ouvrir telegram
Ajouter une question
Catégories
Toutes
Technologie
Culture / Loisirs
Vie / Arts
Science
Professionnel
Entreprises
Utilisateurs
Tous
Nouveau
Populaire
1
Ilya Smirnov
Enregistré il y a 6 jours
2
Денис Васьков
Enregistré il y a 1 semaine
3
Dima Patrushev
Enregistré il y a 1 semaine
4
sirojidddin otaboyev
Enregistré il y a 2 semaines
5
Елена Гайдамамакинат
Enregistré il y a 2 semaines
BG
DE
EL
ES
FR
ID
IT
JA
KO
NL
NO
PT
RO
RU
TR
ZH
© kzen.dev 2023
Source
stackoverflow.com
sous licence cc by-sa 3.0 avec l'attribution