Mehrfach auftretende Zahlen in einem Array

Trueone

Neues Mitglied
Hallo Leute

In einem vorgegebenen Array mit Zufallszahlen sollen Werte bestimmt werden, die mindestens zweimal vorkommen. Diese Anzahl an mehrfachen Zahlen sollen als ein Int - Wert zurückgegeben werden.

Hier ist mein Ansatz:

Java:
public int mehrfach() {

  int anz = 0;            //Zähler, der mehrfach vorkommenden Zahlen zählt

        for (int i = 0; i < array.length; i++) {
            for (int j = i + 1; j < array.length; j++) {
                if (array[i] == array[j]) {
                    anz++; }
                    
                   
                }
            }
             return anz;
        }

Das Problem ist aber, dass es nur bei doppelten Zahlen funktioniert. Sind plötzlich drei gleiche Zahlen oder mehr enthalten, funktioniert es nicht!

Wäre dankbar für euere Hilfe!
 

HimBromBeere

Top Contributor
Du musst wissen, welchen Datentyp die Elemente deines Feldes haben, denn nicht bei allen funktioniert der == Operator. Probier alternativ mal ein .equals (z.B. für Zeichenketten)...


Edit: Ups... beim zweiten Lesen hab ich erst gesehen, dass du ja ein int-Feld verwendest... in dem Fall...
 

Schandro

Top Contributor
wie wärs hiermit?
Java:
		List<Integer> multipleNumbers = new ArrayList<Integer>();
		for(int i=0;i<numbers.length;++i){
			if(!multipleNumbers.contains(numbers[i])){
				for(int e=i+1;e<numbers.length;++e){
					if(numbers[i]==numbers[e]){
						multipleNumbers.add(numbers[i]);
						break;
					}
				}
			}
		}
		System.out.println(multipleNumbers.size());
 

HimBromBeere

Top Contributor
`ne Liste geht natürlich auch... hab´s nochmal als Feld probiert, versuch mal das:

Java:
int anz = 1;            //Zähler, der mehrfach vorkommenden Zahlen zählt
		int a[] = {1, 2, 4, 2, 2, 4, 1, 2};
        for (int i = 0; i < a.length; i++) {
            for (int j = i + 1; j < a.length; j++) {
                if (a[i] == a[j]) anz++;
            }
        	System.out.println(a[i] + ": " + anz);
        	anz = 0;
        	
        }

Du musst den Zähler ab und zu mal auf 0 setzen, denn sonst gibt die nur das Vorkommen aller Zahlen aus... aber du willst ja das Vorkommen je Zahl, oder? Also kannst du nicht mitten inder Schleife ein return setzen... kannst ja ein Feld zurückgeben, wo für jede Zahl die Häufigkeit drin steht

EDIT: Da jede Zahl ja min. ein mal vorkommt, musst du den Zähler am Anfang auch auf 1 setzen... oder willst du nur die überzähligen Elemente wissen, dann kannste natürlich 0 lassen...
 

fibeline

Mitglied
Hi,
das Problem ist, dass bei 3 oder mehr gleichen Zahlen bei jedem Durchlauf die Anzahl für jede(!) bereits vorgekommene Zahl der Zähler erhöht wird. Hat Dein Array beispielsweise die Werte
1,4,5,4,3,3,5,1
funktioniert es. Bei
1,4,5,4,3,3,5,1,1
findet Deine Schleife die 1 zwei Mal, und der Zähler wird erhöht. Jetzt wird das Array nochmal von vorne durchlaufen. Wieder findet er die 1 und erhöht den Zähler nochmal, obwohl es sich um dieselbe Zahl handelt. Hoffe, das ist einigermassen verständlich, besser kann ichs nicht erklären, ist spät ;)

Beispielsweise überprüfen, ob für eine Zahl der Zähler bereits erhöht wurde bzw. ob die Zahl bereits gefunden ist.

Gruß,
Fibeline
 

Trueone

Neues Mitglied
Ich habe das Array sortiert.

Z.B bei einem Array {1,1,1,2,2,3,4,4,4,4,4,5,6,6}

soll der Zähler den Wert 4 anzeigen.

4 Zahlen kommen mindestens doppelt darin vor.

Danke für die Tipps! Ich werde versuchen sie anzuwenden.


Arraylist ist leider keine Option, die Aufgabe soll ohne gelöst werden.
 

codechaos

Mitglied
Würde man bei Schandros Lösung ein Set und keine List verwenden, wäre das eine gültige Lösung des Problems, da man ein Element einem Set nicht mehrfach hinzufügen kann.
Ansonsten hier eine Lösung, die das Array vorher sortiert.

Java:
		int[] numbers = new int[] {1,1,1,2,2,6,6,7,3,4,4,4,4,4,5,6,6};
		int multipleCount = 0;
	
		Arrays.sort(numbers);
		for(int i = 0; i < numbers.length-1; i++) {
			// Falls die Zahl ihrem Vorgänger entspricht, überspringe sie
			if(i > 0 && numbers[i] == numbers[i-1]) {
				continue;
			}
			// Ansonsten prüfe, ob ihr Nachfolger den gleichen Wert hat
			if(numbers[i] == numbers[i+1]) {
				multipleCount++;
			}
		}
		
		System.out.println(multipleCount);
 

Schandro

Top Contributor
Würde man bei Schandros Lösung ein Set und keine List verwenden, wäre das eine gültige Lösung des Problems, da man ein Element einem Set nicht mehrfach hinzufügen kann.
Und wie würdest du das mit einem Set machen? Einfach die Länge des Set's abfragen nach hinzufügen aller Elemente würde das falsche Ergebnis liefern :bae:
 
J

jag726

Gast
Und wie würdest du das mit einem Set machen? Einfach die Länge des Set's abfragen nach hinzufügen aller Elemente würde das falsche Ergebnis liefern :bae:
Vielleicht einfach die Differenz aus der ursprünglichen Arraygröße und der Größe des Sets berechnen?

Aber da hätte man durch 5 Sekunden Nachdenken sicherlich auch selbst drauf kommen können ... :reflect:
 

codechaos

Mitglied
Da habe ich den Wald vor lauter Bäumen nicht gesehen und verdammten Schwachsinn geschrieben, tut mir leid! :)

Hatte eher an so was gedacht:

Java:
		Integer[] numbersArray = new Integer[] {1,1,1,2,2,6,6,7,3,4,4,4,4,4,5,6,6};
		
		Set<Integer> multibleNumbers = new HashSet<Integer>();		
		List<Integer> numbersList = Arrays.asList(numbersArray);
		
		for(Integer n : numbersList) {
			if(Collections.frequency(numbersList, n) > 1) {
				multibleNumbers.add(n);
			}
		}
		
		System.out.println(multibleNumbers.size());
 

Schandro

Top Contributor
Vielleicht einfach die Differenz aus der ursprünglichen Arraygröße und der Größe des Sets berechnen? Aber da hätte man durch 5 Sekunden Nachdenken sicherlich auch selbst drauf kommen können ...
Falsch. Denk das nächste mal lieber 5 Sekunden nach bevor du Schwachsinn postest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M mehrfach auftretende zahlen in einem array Java Basics - Anfänger-Themen 6
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
F Session wird mehrfach erzeugt Java Basics - Anfänger-Themen 11
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
kokojamboo92 char mehrfach ausgeben.. Java Basics - Anfänger-Themen 2
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
L Mit java ein wort mehrfach versetzt darstellen Java Basics - Anfänger-Themen 14
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
C Mehrfach Array "speichern" Java Basics - Anfänger-Themen 9
D Erste Schritte Countdown mehrfach verwenden Java Basics - Anfänger-Themen 5
A String Mehrfach Splitten Java Basics - Anfänger-Themen 1
R JUnit Test mit mehrfach ausgeführt Java Basics - Anfänger-Themen 6
J Objekterzeugung im Konstruktor - Mehrfach gleiche Referenzvariable? Java Basics - Anfänger-Themen 4
P RegEx Muster mehrfach treffen Java Basics - Anfänger-Themen 2
T methode mehrfach automatisch ausfuehren Java Basics - Anfänger-Themen 6
S Objekt mehrfach erzeugen Java Basics - Anfänger-Themen 3
H2SO3- Designfragen (mehrfach extends) Java Basics - Anfänger-Themen 11
0 Exceptions mehrfach fangbar? Java Basics - Anfänger-Themen 4
W mehrfach parameterized Java Basics - Anfänger-Themen 4
? java.util.Properties Wert von key mehrfach vorhanden Java Basics - Anfänger-Themen 13
M Applikation darf nicht mehrfach gestartet werden Java Basics - Anfänger-Themen 2
N Mehrfach von Klassen benutze Methode in Interface auslagern? Java Basics - Anfänger-Themen 3
S Combobox mehrfach verwenden Java Basics - Anfänger-Themen 3
H Wie Consolen Application mehrfach duchlaufen lassen? Java Basics - Anfänger-Themen 10
H Mehrfach in eine Datei schreiben, wie geht das? Java Basics - Anfänger-Themen 6
S ArrayList mehrfach Java Basics - Anfänger-Themen 4
G String mehrfach ausgeben Java Basics - Anfänger-Themen 5
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
J 10 positive Zahlen eingeben Java Basics - Anfänger-Themen 10
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
M Zahlen erraten Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben