Maximum werte eines Arrays bestimmen !!!???

Status
Nicht offen für weitere Antworten.
D

djmarom

Gast
HI Leute, :D

brauche mal euren Rat:

wie schaffe ich es auf simple Weise den max. bzw. die max. Werte eines Arrays zu bestimmen, was nur
mit Integer-Werten gefüllt wird.

aus diesem muß ich die größten Zahlen ermitteln...

Ciao :shock:
 

neXus

Mitglied
Ich bin mir jetzt nicht sicher was du mit max. Werten genau meinst...

kannst du evtl ein wenig präziser werden? meinst du die grösse?...also die maximale anzahl der einträge die man machen kann?
 
S

stev.glasow

Gast
@neXus
ich denke er meint den größten wert

@djmarom
Code:
import java.lang.reflect.Array;
import java.util.Arrays;
...
int len = Array.getLength(deinArray); // falls du len nicht hast
Arrays.sort(deinArray);
int max = deinArray[len - 1];
...
 

Ebenius

Top Contributor
stevg hat gesagt.:
Code:
import java.lang.reflect.Array; 
import java.util.Arrays; 
... 
int len = Array.getLength(deinArray); // falls du len nicht hast 
Arrays.sort(deinArray); 
int max = deinArray[len - 1]; 
...

:!: An sich ist das richtig. Allerdings solltest Du die Länge des Arrays nicht so kompliziert ermitteln :!:
Code:
import java.util.Arrays; 
... 
Arrays.sort(deinArray); 
int max = deinArray[deinArray.length - 1];

Reflection ist dafür wirklich nicht notwendig.

Es grüßt Ebenius
 

Nobody

Top Contributor
wenn das ganze nicht sortiert werden soll bzw es mehrere max werte gibt (kann je nach aufgabenstellung erwartet werden):
ersten wert nehmen, als max annehmen und dann mit jedem element vergleichen.
den/die indexe in einem array/int wert speichern (jenachdem ob 1 oder mehrere werte erforderlich sind):

Code:
//das array nen ich zahlen
int max=zahlen=[0];
len=zahlen.length;
int[] indexe= new int[len];
indAnz=1;
len[0]=0;
for(int i=1;i<len;i++){
   if(max<zahlen[i]){
     max=zahlen[i];
     indexe=new int[len];
     indexe[0]=i;
   } else if(max=zahlen[i]){
     indexe[indAnz]=i;
     indAnz++;
   }
}
//so hast du mehrere max werte und derren index gespeichert. nur sinnvoll, wenn du die liste wirklich nicht sortiert haben sollst, da das ganze etwas langsam ist (quicksort heist nicht umsonst quicksort).



wenn du das array sortiert hast und alle max werte (zb deren anz) brauchst, dann suchst du in dem sortierten array von hinten her solange, bis der wert != max ist. solange er ==max ist, erhöhst du einen wert der mitzählt, wie oft der wert vorkommt.
 
D

djmarom

Gast
Hi Leute,

danke für die schnelle Hilfe :D . Selten so etwas ...

So was hatte ich mir auch in einer abgewandelten Form überlegt...

Habe mir jetzt bissl was gestrickt.

Ciao +thx :shock:
 
S

stev.glasow

Gast
Ebenius hat gesagt.:
stevg hat gesagt.:
Code:
import java.lang.reflect.Array; 
import java.util.Arrays; 
... 
int len = Array.getLength(deinArray); // falls du len nicht hast 
Arrays.sort(deinArray); 
int max = deinArray[len - 1]; 
...

:!: An sich ist das richtig. Allerdings solltest Du die Länge des Arrays nicht so kompliziert ermitteln :!:
Code:
import java.util.Arrays; 
... 
Arrays.sort(deinArray); 
int max = deinArray[deinArray.length - 1];

Reflection ist dafür wirklich nicht notwendig.

Es grüßt Ebenius

becstift hat mir auch erzählt dass deinArray.length besser ist - wenn ich ehrlich bin (und das bin ich) wusste ich gar nicht das es length gib. wo kommt das her ? was haben die mit Array gemacht ? gibt es noch mehr solcher sachen ?
 

Ebenius

Top Contributor
Du willst also die Maximalwerte aus dem Histogramm...

Ist nicht ganz simpel, geht aber:
Code:
public static void main(String[] args)
{
	int[] array = new int[]
	{
		1, 2, 2, 3, 1, 4, 5, 61, 24, 4, 3, 2, 1, 4, 2, 4, 5, 35234, 3, 12, 
		4, 1, 34, 1, 3, 4, 21, 4, 5, 52, 3, 3, 4, 3, 2, 1, 4, 3, 4, 2, 4, 3
	};
	
	final Map histogramMap = new HashMap(array.length);
	final Integer oneInteger = new Integer(1);
	int top = 0;

	// store the amounts (key is number, value is counter)
	for(int idx = 0; idx < array.length; idx++)
	{
		Integer key = new Integer(array[idx]);
		Integer countInteger = (Integer) histogramMap.get(key);
		
		if(countInteger == null)
		{
			histogramMap.put(key, oneInteger);
		}
		else
		{
			int count = countInteger.intValue() + 1;
			if(top < count)
				top = count;
			histogramMap.put(key, new Integer(count));
		}
	}

	// get the keys with highest amount, iterate over keys
	for(Iterator it = histogramMap.keySet().iterator(); it.hasNext();)
	{
		Integer key = (Integer) it.next();
		Integer value = (Integer) histogramMap.get(key);
		if(value.intValue() < top)
			it.remove();
	}

	System.out.println(histogramMap);
}

Ich liebe Collection-Framework! :)

Noch fragen (hab's getestet!)

Es grüßt Ebenius
 

Ebenius

Top Contributor
stevg hat gesagt.:
wusste ich gar nicht das es length gib. wo kommt das her ? was haben die mit Array gemacht ? gibt es noch mehr solcher sachen ?
:arrow: Arrays sind synthetische Objekte (Quasi-Hybride zwischen Objekt- und Primitivtypen). Daher kommt auch der Member length, welcher ein final int ist. Damit sind Arrays auch größeninvariabel.

:arrow: Arrays sind final, d.h. folgendes geht nicht (nicht so und nicht anders):
Code:
class A extends int[]

:arrow: Arrays besitzen natürlich alle Methoden von java.lang.Object, wobei allerdings die equals()-Method und die hashCode()-Methode nicht überschrieben sind (wie man es vielleicht vermutet).

:arrow: Auch int[].class existiert und einhergehend instanceof

:!: Darüber nachdenken:
Code:
int[][] iii = new int[0][0];
System.out.println(iii instanceof Object);
System.out.println(iii instanceof Object[]);
System.out.println(iii instanceof int[][]);
gibt in jeder Zeile true aus :!:

Alle Klarheiten beseitigt?

Es grüßt Ebenius

PS: Wenn man das noch ein bisschen ausbaut, ist das was für die Java-FAQ.
 
S

stev.glasow

Gast
Ebenius hat gesagt.:
Noch fragen (hab's getestet!)
na aber !


wozu brauchst du die HashMap ?

ich hätte es wie folgt gemacht:
Code:
int max = array[0];
int indexOfMax = 0; // kann man eventuell gebrauchen
for(int idx = 1; idx < array.length; idx++) 
{
      if(array[idx] > max)
      {
             max = array[idx];
             indexOfMax = idx;
      }
}
System.out.print("Der größte Wert ist " + max + " und hat den index " + indexOfMax);
 

Ebenius

Top Contributor
... oder stand da vorhin nicht was davon, dass djmarom wissen will, welche zahl(en) am häufgsten vorkommen.

Darauf bezieht sich mein vorangegangener Lösungsansatz nämlich (Histogram!)...

Wenn das nicht gewünscht ist (und dann müsste ich extrem geträumt haben) dann braucht man kein Collection-FrameWork. Kann es sein, dass hier eine Antwort nachträglich geändert/gelöscht wurde?

Mein Beispiel gibt aus: die Zahl vier ist mit elf mal am häufigsten vertreten. Ist natürlich was ganz anderes!

Es grüßt Ebenius
 
S

stev.glasow

Gast
Ebenius hat gesagt.:
PS: Wenn man das noch ein bisschen ausbaut, ist das was für die Java-FAQ.

dann mach dich ran :wink:


hab es verstanden, aber wieso sind die genanten klassen (bis auf Object) nicht in der Java-API-Dokumentation aufgelistet ?
 

Ebenius

Top Contributor
stevg hat gesagt.:
wieso sind die genanten klassen (bis auf Object) nicht in der Java-API-Dokumentation aufgelistet ?
Die sind nicht in der API Doc, weil sie generisch/synthetisch sind und es unendlich viele geben kann! (int[], int[][], int[][][], int[]...[], ...).

Dafür sind sie aber integraler Bestandteil der Sprachspezifikation. Die sind Quasi noch mehr low-level als String.

Es grüßt Ebenius
 
S

stev.glasow

Gast
kennst du eine dokumentation die sich mit dem thema auseinander setzt.

Kann es sein, dass hier eine Antwort nachträglich geändert/gelöscht wurde?
irgend wie war das eigendartig mein beitrag wurde vor deine gesetzt obwohl deine vorher schon da war
[schild=2 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1] mysteriös[/schild]
war hoffendlich ein einzelfall (die datenstruktur von phpbb hat sowieso ein paar eigenarten)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Minimum und Maximum ausgeben lassen Java Basics - Anfänger-Themen 7
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
RudiRüssel Binäre Suche, unsortiert, lokales Maximum Java Basics - Anfänger-Themen 15
J Maximum herauskriegen mit foreach Java Basics - Anfänger-Themen 6
S Compiler-Fehler im array Maximum ermitteln Java Basics - Anfänger-Themen 6
M Maximum einer sinusfunktion (Spalt-Experiment) Java Basics - Anfänger-Themen 5
hello_autumn Maximum berechnen. Java Basics - Anfänger-Themen 17
K Maximum Suchen Array Java Basics - Anfänger-Themen 6
R Erste Schritte Minimum und Maximum in Array finden Java Basics - Anfänger-Themen 29
D VM Argumente - Das Maximum rausholen Java Basics - Anfänger-Themen 19
V Maximum berechnen ... Java Basics - Anfänger-Themen 20
S JSplitPane Divider Maximum Position Java Basics - Anfänger-Themen 5
D Maximum Subarray Problem; Problem mit der Rückgabe Java Basics - Anfänger-Themen 10
J Das Maximum einer Liste ermitteln Java Basics - Anfänger-Themen 8
S JAVA Methode für Maximum aus 4 ganzen Zahlen Java Basics - Anfänger-Themen 12
A Felder- Minimum/Maximum Java Basics - Anfänger-Themen 2
T aus Integer Array Maximum bestimmen Java Basics - Anfänger-Themen 7
M Maximum, Minimum und Mittelwert berechnen Java Basics - Anfänger-Themen 25
R maximum in integer array suchen Java Basics - Anfänger-Themen 29
B Applet, welches Maximum eines Array bestimmt Java Basics - Anfänger-Themen 2
P Lokales Minimum- Maximum, Globales Minimum - Maximum ? Java Basics - Anfänger-Themen 4
P Minimum/Maximum aus einer Liste Java Basics - Anfänger-Themen 3
Z Zahlenreihe maximum Java Basics - Anfänger-Themen 3
U Maximum zweier Zahlen ermitteln Java Basics - Anfänger-Themen 7
S maximum zweier Zahlen Java Basics - Anfänger-Themen 1
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
TeacherMrSSimon Schachspiel, Werte in Figur eintragen klappt nicht Java Basics - Anfänger-Themen 23
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
M Nur int-Werte erlauben Java Basics - Anfänger-Themen 11
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
M Wie kann eine Methode eine andere Methode um Werte wie z.B. 1 erhöhen? Java Basics - Anfänger-Themen 6
Igig1 Wie lasse ich dir Werte in einem Array zusammenrücken? Java Basics - Anfänger-Themen 4
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
J Methoden Positive Werte zählen Java Basics - Anfänger-Themen 3
E Meine JCombobox werte an ohne selectiert zu haben Java Basics - Anfänger-Themen 6
H OOP Werte mit Set verändern Java Basics - Anfänger-Themen 6
W Werte durch Konsole einlesen Java Basics - Anfänger-Themen 10
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
cmn489 Werte beim Funktionsaufruf in ein Feld übertragen(falls dieses leer ist) Java Basics - Anfänger-Themen 1
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
G Array Werte addieren Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
C Zufallszahl + Werte bereich einstellen Java Basics - Anfänger-Themen 2
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
Rubberduck Combobox-Werte in GUI anzeigen Java Basics - Anfänger-Themen 13
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
A Negative float Werte? Java Basics - Anfänger-Themen 10
Kirby.exe Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
S Werte aufsummieren in java? Java Basics - Anfänger-Themen 5
M Werte des Arrays addieren Java Basics - Anfänger-Themen 5
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
H Methoden Nutzung der Werte einer ausgeführten Objektmethode in anderen Objektmethoden Java Basics - Anfänger-Themen 2
O Map Werte Java Basics - Anfänger-Themen 2
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
L Werte zufällig aus Array zurückgeben Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben