Minimum und Maximum eines Arrays in Java
Wie wir sagen und wiederholen, bietet Java dank seines objektorientierten Konzepts vordefinierte Methoden, was uns die Programmierung erleichtert, aber indem wir diese Methoden selbst programmieren, hilft es uns, ein wenig zu üben und unsere Form zu behalten. Um auf unser Hauptthema zurückzukommen, müssen Sie wissen, dass es notwendig ist, das gesamte Array vom ersten bis zum letzten Element durchzugehen, während Sie das größte/kleinste Element, das bisher gefunden wurde, mit dem aktuellen Element vergleichen.In den Beispielen in diesem Artikel, Wir werden die vier Lösungen vorstellen, um den Minimal- und Maximalwert in einem Array zu finden:
- Naive Lösung
- Java 8
- Googles Guava Api library
- Die Apache Commons library
Hier ist ein Java-Programm, das den Wert und die Position des kleinsten Werts in einem Array zurückgibt.
public class min_max_array {Laufzeit:
public static void main(String[] args) {
int maxVal = Integer.MAX_VALUE;
int minVal = Integer.MIN_VALUE;
int array[] = {51, 24, 19, 5, 37, 76, 61, 99, 101, 36};
for (int number:array)
System.out.print(number+" ");
for(int i = 0; i < array.length; i++){
if(array[i] < maxVal)
maxVal = array[i];
if(array[i] > minVal)
minVal = array[i];
}
System.out.print("\nMindestwert = "+maxVal);
System.out.print("\nMaximaler Wert = "+minVal);
}
}
51 24 19 5 37 76 61 99 101 36Im Beispiel wird zunächst die VariableminVal mit Integer.MAX_VALUE der der größere Wert ist als int nehmen kann. Dies geschieht, um sicherzustellen, dass der Anfangswert nicht versehentlich kleiner ist als der erste Wert im Array.
Minimalwert = 5
Maximalwert = 101
Zweitens durchläuft das Programm das Array und vergleicht jeden Wert mit minVal. Wenn das Element in der Tabelle ist kleiner als minVal Also minVal erhält den Wert dieses Elements.
Schließlich wird der im Array gefundene Mindestwert angezeigt.
Java 8
Mit Java 8 ist es einfach, die größte und kleinste Zahl zu finden. Im ersten Code konvertieren wir ein Array in einen Stream, dann rufen wir die Methode Arrays.stream().max() der ein OptionalInt zurückgibt und den größten gefundenen Wert enthält.
Der zweite Code verwendet IntStream, einen auf int-Primitive spezialisierten Stream, und von hier aus ist es möglich, den intStream.of().max() der ein OptionalInt.
public void max_array_java8 (int[] tab) {
OptionalInt max = Arrays.stream(tab).max();
//or
OptionalInt max = IntStream.of(tab).max();
}
public void min_array_java8 (int[] tab) {
OptionalInt min = Arrays.stream(tab).min();
//or
OptionalInt min = IntStream.of(tab).min();
}
Googles Guava-API
Die Ints-Klasse von Guava bietet zwei MethodenInts.max() und Ints.min() die den größten bzw. kleinsten Wert zurückgeben. Um diese API verwenden zu können, laden Sie sie von der offiziellen Website von Google Guava.
à
public static int max_array_guava (int[] tab) {
int max = Ints.max(tab);
Rückgabe max;
}
public static int min_array_guava (int[] tab) {
int min = Ints.min(tab);
Rücklauf min;
}
Apache Commons
Die NumberUtils-Klasse von Apache Commons bietet Java zusätzliche Funktionen und enthält zwei MethodenNumberUtils.max() und NumberUtils.min() die den größten bzw. kleinsten Wert zurückgeben. Um diese Bibliothek verwenden zu können, laden Sie sie von der offiziellen Website der api Apache Commons.public static int max_array_apache (int[] tab) {Referenzen:
int max = NumberUtils.max(tab);
Rückgabe max;
}
public static int min_array_apache (int[] tab) {
int min = NumberUtils.min(tab);
Rücklauf min;
}
Find Min & Max. in einem Array unter Verwendung von Mindestvergleichen