alle nicht-dplikate finden

Status
Nicht offen für weitere Antworten.

atenv

Mitglied
Hallo,

alle nicht-duplikate eines Arrays finden. Wo bitte ist mein Fehler?


Java:
	public int howMany(int[] arr) {
		if (arr.length == 0)
			return 0;
		
		int diffCount = 0;
		int j = 0; int i=0;
		
		for (; i < arr.length ; i++) {

			for (; arr[j] < arr[i]; j++) {
				if (arr[i] != arr[j]) {
					diffCount++;
				} else {
					System.out.print( arr[i] +" and " +arr[j] + "are same!");
				}
			}
		}
		return diffCount;
	}


Bitte um Hilfe

LG
 
Zuletzt bearbeitet:
M

maki

Gast
Ich verstehe dein Abbruchbedingung für die innere Schleife nicht ganz...
Java:
arr[j] < arr[i];
Ansonsten würde ich das weiter aufteilen in mehere Methoden und bessere Variablennamen.

Wenn du ein Set verwenden würdest, wäre das ganze übrigens in 2-3 Zeilen abgehandelt.
 

atenv

Mitglied
Ich verstehe dein Abbruchbedingung für die innere Schleife nicht ganz...
Java:
arr[j] < arr[i];
Ansonsten würde ich das weiter aufteilen in mehere Methoden und bessere Variablennamen.

Wenn du ein Set verwenden würdest, wäre das ganze übrigens in 2-3 Zeilen abgehandelt.

Hi,

ja ich möchte das i-te element in der ersten schleife mit jedem anderen element aus der zweiten schleife (für das array ) vergleichen. Dann wieder um das i+1-te element mit jedem anderen element vergleichen ust. bis die schleife i vertig ist.

Sorry aber ich verstehe nicht was Du mit Set gemeint hast... Könntest Du bitte ein wenig genauer sein?..
 

atenv

Mitglied
Okay,

nun sehe ich wie viele fehler ich überall gemacht habe.

Java:
	public int howMany(int[] arr) {
		if (arr.length == 0)
			return 0;

		int diffCount = 0;
		int j = 0;
		int i = 0;

		for (; i < arr.length; i++) {
			System.out.print("FORI_arr[i]=" + arr[i] + " ||| \n\n");
			for (; j <= arr.length-1; j++) {
				System.out.print("\n FORJ: _arr[i]=" + arr[i] + " arr[j]="	+ arr[j] + "; ");

			
			}
		}
		return diffCount;
	}

trotzdem, starten die innere iterationen in FORJ in der zweiten, dritten, etc. FORI iteration nicht, warum denn ?
 

atenv

Mitglied
oaky ich habs entdeckt :)


Ziemlich dumm, ja aber....int j = 0;
ausserhalb der schleife wird nur ein mal initialisiert....
ja ja ...
 

Schandro

Top Contributor
deswegen lieber immer die initialisierung der Hilfsvariable einer for Schelife in den Schleifenkopf schreiben.
 

atenv

Mitglied
deswegen lieber immer die initialisierung der Hilfsvariable einer for Schelife in den Schleifenkopf schreiben.

jep.

darf ich dich was anderes nun fragen?

Ich versuche mit der Methode die nummer aller integer (in meinem array) die sich nicht wiederhollen zu ermitteln. Wie kann ich aber die Wiederholung überspringen ? Sprich arr == arr[j] in der zweiten schleife.

Ich komme leider auf kein vernünftiges ergäbnis

hier ist was ich bislang geschrieben habe:

Java:
	public int howMany(int[] arr) {
		if (arr.length == 0)
			return 0;

		int diffCount = 0;
		//int j = 0;
		int i = 0;

		for (; i < arr.length; i++) {
			System.out.print("FORI_arr[i]=" + arr[i] + " ||| \n\n");
			for (int j = 0; j <= arr.length-1; j++) {
				System.out.print("\n FORJ: _arr[i]=" + arr[i] + " arr[j]="	+ arr[j] + "; ");
				if (arr[i] != arr[j] && j != i) {
					diffCount++;
				} else {
					System.out.print(arr[i] +" and " +arr[j] + " are same! \n");
					
				}
			}
		}
		return diffCount;
	}
 

Schandro

Top Contributor
Wie wärs hiermit:
Java:
import java.util.*;

public class A{
	public static void main(String[] args){
		List <Integer> list = new ArrayList <Integer> ();
		list.add(23);
		list.add(3);
		list.add(213);
		list.add(3523);
		list.add(-253);
		list.add(213);
		list.add(213);
		list.add(3);

		System.out.println(getDuplicates(list));
	}

	public static <E> List <E> getDuplicates(List<E> list){
		HashSet <E> set = new HashSet <E> ();
		List <E> duplicates = new ArrayList <E> ();

		for(int i=0;i<list.size();++i){
			if(set.contains(list.get(i))){
				if(!duplicates.contains(list.get(i))){ // verhindert das duplikate in der duplikaten-Liste sind
					duplicates.add(list.get(i));
				}
			}
			else{
				set.add(list.get(i));
			}
		}
		return  duplicates;
	}
}
...
 

ARadauer

Top Contributor
...
Sorry aber ich verstehe nicht was Du mit Set gemeint hast... Könntest Du bitte ein wenig genauer sein?..

Java:
   public static int diffCount(int[] arr){
     Set<Integer> set = new HashSet<Integer>();
     for(int i: arr)
        set.add(i);
     return set.size();     
   }
sowas war gemeint...
 

atenv

Mitglied
Wie wärs hiermit:
Java:
import java.util.*;

public class A{
	public static void main(String[] args){
		List <Integer> list = new ArrayList <Integer> ();
		list.add(23);
		list.add(3);
		list.add(213);
		list.add(3523);
		list.add(-253);
		list.add(213);
		list.add(213);
		list.add(3);

		System.out.println(getDuplicates(list));
	}

	public static <E> List <E> getDuplicates(List<E> list){
		HashSet <E> set = new HashSet <E> ();
		List <E> duplicates = new ArrayList <E> ();

		for(int i=0;i<list.size();++i){
			if(set.contains(list.get(i))){
				if(!duplicates.contains(list.get(i))){ // verhindert das duplikate in der duplikaten-Liste sind
					duplicates.add(list.get(i));
				}
			}
			else{
				set.add(list.get(i));
			}
		}
		return  duplicates;
	}
}
...


Danke, macht allerdings genau das gegenteil. Was ich schreibe ist etwas das mir nur die "Unikate" ergibt.

Leider habe ich Generizität bis lang nur geblättert, aber wie würde das ausschauen?
 

Schandro

Top Contributor
Ist zwar umständlich, aber immerhin funktioniert es so:
Java:
	public static <E> List <E> getUniqueElements(List<E> list){
		 List<E> duplicates = getDuplicates(list);
		 List<E> result = new ArrayList <E> ();
		 for(int i=0;i<list.size();++i){
			 if(!duplicates.contains(list.get(i))){
				 result.add(list.get(i));
			 }
		 }
		 return result;
    }
 
M

maki

Gast
Ist aber nicht dein ernst Schandro, oder? ;)

ARadauer hat euch doch schon eine bessere Lösung vorgeschlagen... noch kürzer wird es, wenn man ein gleich eine Collection einsetzt.

atenv, warum eingentlich Arrays? Sind doch so primitiv und gar nicht OO, wenn es nicht unbedingt ein Array sein muss, nimmt man Collections ;)
 

atenv

Mitglied
Ist aber nicht dein ernst Schandro, oder? ;)

ARadauer hat euch doch schon eine bessere Lösung vorgeschlagen... noch kürzer wird es, wenn man ein gleich eine Collection einsetzt.

atenv, warum eingentlich Arrays? Sind doch so primitiv und gar nicht OO, wenn es nicht unbedingt ein Array sein muss, nimmt man Collections ;)

Na ja, ursprünglich musste ich in einem random simple-array, den kleinsten wert, den zweitkleinsten wert sowie auch alle unikate finden.
 
M

maki

Gast
Hört sich nach einer Übungsaufgabe für die Schule/Uni an bei der man keine vordefinierten API Methoden bzw. andere Datenstrukturen einsetzen darf?

Wenn ja, dann bleibt dir wohl nix anderes übrig als Arrays zu verwenden.
 

atenv

Mitglied
Hört sich nach einer Übungsaufgabe für die Schule/Uni an bei der man keine vordefinierten API Methoden bzw. andere Datenstrukturen einsetzen darf?

Wenn ja, dann bleibt dir wohl nix anderes übrig als Arrays zu verwenden.

Wir dürfen eigentlich alles anwenden. Aber wie gesagt, haben wir Generizität noch nicht genommen. Also, ja nur mit primitive arrays...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Server-Thread schreibt nicht alle Dateien Allgemeine Java-Themen 6
C BufferedReader/BufferedWriter schreibt nicht alle Bytes Allgemeine Java-Themen 2
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
U javax.mail.Folder.list() zeigt nicht alle Ordner Allgemeine Java-Themen 5
B Threads Barrier mit wait()/notify() aber nicht alle Prozesse terminieren Allgemeine Java-Themen 2
S .jar hat nicht alle Klassen ??? Allgemeine Java-Themen 10
D generische Klasse für alle Maps (nicht Collections :-)) Allgemeine Java-Themen 11
E Logger loggt nicht alle Level Allgemeine Java-Themen 2
S Warum packt er nicht alle Dateien? Allgemeine Java-Themen 13
J Logger gibt nicht alle Level aus Allgemeine Java-Themen 3
P Observer, nicht alle updates bearbeiten Allgemeine Java-Themen 2
Zrebna Wie ermittelt man alle testbaren (zu testenden) Klassen in seinem Maven-Projekt? Allgemeine Java-Themen 23
_user_q Alle Kombinationen von "0000" bis "FFFF" kompakt schrieben Allgemeine Java-Themen 13
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
L Farbverlauf RGB alle Farben Allgemeine Java-Themen 28
S Alle Dateinamen ermitteln Allgemeine Java-Themen 22
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
S Kann ich eine Methode schreiben die alle Arten von funktionalen Interfaces akzeptiert..? Allgemeine Java-Themen 21
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
MaxG. Best Practice Alle Kombinationen berechnen Allgemeine Java-Themen 3
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
J Alle Unit Tests in Maven Modul Projekt ausführen Allgemeine Java-Themen 7
S Anwendung die alle Abhaengigkeiten einer Library listet..? Allgemeine Java-Themen 5
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
I Alle logs von Logger bekommen Allgemeine Java-Themen 3
K Classpath Alle Classen aus einem Package lesen Allgemeine Java-Themen 7
L Alle möglichen Additionen (Rekursiv) Allgemeine Java-Themen 3
KaffeeFan Methoden replace alle Buchstaben Allgemeine Java-Themen 3
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
U Koordinaten alle Pixel eines Dreiecks zeichnen ausgeben Allgemeine Java-Themen 5
Z Eclipse hängt sich alle paar Sekunden auf (Keine Rückmeldung). Allgemeine Java-Themen 4
Seikuassi Alle Escape-Sequenzen in einem String ersetzen Allgemeine Java-Themen 4
F Java Spintax: Alle Kombinationen Erzeugen Allgemeine Java-Themen 2
Sogomn Klassen Alle in eine Klasse Allgemeine Java-Themen 11
P Methoden Alle Kombinationen aus 2 Karten berechnen Allgemeine Java-Themen 2
T Wie kann ich alle existierenden Java-Klassen anzeigen lassen? Allgemeine Java-Themen 10
M Zufälligen String generieren und alle 5 Minuten ändern Allgemeine Java-Themen 2
M RegEx alle Matches ausgeben Allgemeine Java-Themen 5
A Applet Alle Threads beim schließen des Applets beenden Allgemeine Java-Themen 8
C SwingWorker.cancle(true) tötet alle Worker Allgemeine Java-Themen 3
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
T Alle Instancen einer Klasse auflisten Allgemeine Java-Themen 13
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
S Alle Kombinationen aus ArrayList - Potenzmenge Allgemeine Java-Themen 7
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
brunothg Alle Kombiationen von n Ziffern Allgemeine Java-Themen 2
M Erste Schritte alle xmlFiles in zugehörige pdfFiles einlesen Allgemeine Java-Themen 4
B Variablen Alle RenderingHints.Keys (KEY_*) in Array + alle RenderingHints.Keys (VALUE_*) in Object[] Allgemeine Java-Themen 8
S Aus einer Liste<Oberklasse> alle Elemente die eine bestimmte Unterklasse von Oberklasse haben filter Allgemeine Java-Themen 8
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
F Alle Exceptions abfangen Allgemeine Java-Themen 4
nrg JS als ScriptEngine - alle Punkte ersetzen Allgemeine Java-Themen 4
A Bildschirmauflösung geändert - alle Bildschirminhalte verschoben - was tun? Allgemeine Java-Themen 7
C Alle Klassen eines Packages lesen und instanzieren? Allgemeine Java-Themen 9
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
J Alle Tage eines Jahres Allgemeine Java-Themen 2
AlexSpritze Alle Domains oder FQDN von einem Server erfragen? Allgemeine Java-Themen 2
Spot84 alle kombinationen einer string arraylist Allgemeine Java-Themen 2
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
J Konstrukt um alle Paare und Tripel einer Punkte-Menge bilden Allgemeine Java-Themen 12
B Alle möglichen Buchstabenkombinationen in einem String Allgemeine Java-Themen 7
P alle zusammanhaengenden teilgraphen Allgemeine Java-Themen 7
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
E Alle unter Prozesse der beim schließen mit schließen Allgemeine Java-Themen 3
A An alle Cracks: Anwendung beenden mit ShutdownHook? Allgemeine Java-Themen 13
M alle möglichen Zahlenkombinationen Allgemeine Java-Themen 5
B in welchem verzeichnis liegen alle installierten klassen? Allgemeine Java-Themen 6
hdi Für alle fleissigen Helfer! Allgemeine Java-Themen 15
N Alle Fehler ausgeben? Allgemeine Java-Themen 4
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
O Auf alle Events reagieren Allgemeine Java-Themen 3
B J-Unit Tests. Alle Tests eines Package einsammen. Allgemeine Java-Themen 4
U alle Dateien eines Ordners innerhalb einer JAR auflisten Allgemeine Java-Themen 6
S toString() für alle Member einer Klasse. Allgemeine Java-Themen 6
G Alle möglichen Konfigurationen eines Baumes Allgemeine Java-Themen 4
C Alle Möglichen Substrings der Länge k aus String extrahieren Allgemeine Java-Themen 9
C Alle Bilder eines binären Arrays ausgeben Allgemeine Java-Themen 3
G Alle möglichen Permutationen einer Folge n Allgemeine Java-Themen 3
V Alle Klassen eines Package auflisten? Allgemeine Java-Themen 6
H JTable Löschen [Alle Zeilen aufeinmal Löschen] Allgemeine Java-Themen 6
@ RegEx: Alle Sonderzeichen ausser dem Punkt Allgemeine Java-Themen 4
G Alle Möglichen Kombinationen einer Liste Allgemeine Java-Themen 11
H Alle möglichen Hochkommata ausschließen Allgemeine Java-Themen 6
M Gibt es ein Jar - das alle Componente Automatisch anpasst? Allgemeine Java-Themen 14
K Suche alle Objekte einer bestimmten Klasse Allgemeine Java-Themen 2
N Unter Mac Os X alle laufenden Prozesse ausgeben Allgemeine Java-Themen 3
S Änderung an Proberties datei an alle User weitergeben? Allgemeine Java-Themen 7
der JoJo [TreeSelection] wie bekomme ich alle Elemente Allgemeine Java-Themen 4
G Alle Zeichen des Alphabets ausgeben Allgemeine Java-Themen 4
G Alle Möglichkeiten n Elemente Anzuordnen. Allgemeine Java-Themen 13
0 Alle Teiler einer Zahl performant berechnen? Allgemeine Java-Themen 9
J Funktion alle Möglichkeiten berücksichtigen Allgemeine Java-Themen 5
O Warten bis alle gestarteten Threads beendet sind? Allgemeine Java-Themen 6
G HTML file Alle relativen URL in absolute URL umschreiben? Allgemeine Java-Themen 12
D FileWriter, PrintWriter und wie sie alle heißen. Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben