Attribute auf Einzigartigkeit prüfen

Status
Nicht offen für weitere Antworten.

huskyx

Mitglied
Hi Leute,
ich hab' eine Frage bezüglich Objekten bzw. deren Attributen.

Vorher wurden 150 verschiende Artikel mit Zufallswerten erstellt u. a. auch eine Artikelnummer, die den Artikel eindeutig indentifiezieren soll.
Die folgende Methode sollte eigentlich genau dann eine neue Nummer erstellen, wenn ein anderer Artikel bereits dieselbe hat, aber irgendwas funktioniert da nicht und ich komme nicht auf den Fehler. Es werden manchmal die selben Zahlen ausgegeben !

Code:
private void ArtikelNrIstEinzigartig(){
		for (int i = 0; i < artikel.length; i++) {
			for (int j = 0; j < artikel.length; j++) {
				if( i != j){
					if(artikel[i].getArtikelnummer() == artikel[j].getArtikelnummer()){ 

						artikel[i].setArtikelnummer(MRandom.nextInt(10000, 99999)); // liefert eine neue Zufallszahl zwischen 10000 und 99999

					}
				}

			}

		}
	}

Wenn ihr Alternativlösungen zu der der obigen habt, bitte enthaltet mir diese nicht vor.

Vielen Dank schon mal für eure Mühe.
 
S

SlaterB

Gast
wenn du eine Übereinstimmung findest, setzt du eine neue Zufallszahl, aber die kann doch auch wieder mit irgendeiner übereinstimmen??

falls du bei diesem Zufallsprinzip bleibst, muss du dir merken, ob in einem Gesamtdurchlauf etwas geändert wurde
und den Gesamtlauf solange wiederholen bis nichts mehr zu ändern ist,

alternativ direkt bei einer Änderung gleich wieder mit dem gesamten Array vergleichen und direkt eine neue Zufallszahl wählen, falls die bisher neue schon vorhanden ist
 

Landei

Top Contributor
Wenn der Bereich nich allzugroß ist, geht auch das:

- Liste mit allen Zahlen im gewünschten Bereich erstellen
- Collections.shuffle (oder so ähnlich)
- Immer wenn du eine Nummer brauchst, gehst du den Pu... sorry, ich meine, dann gehst du in die Liste und holst das erste Element mit remove(0)
 

huskyx

Mitglied
Danke euch.
@SlaterB das scheint mir eine ganz gute Idee zu sein. Ich werd mal schauen, ob ich das umsetzten kann.

@Marco Selbstverständlich spricht theoretisch natürlich nichts dagegen und wäre ja auch viel sinnvoller, aber ich finde das Problem ansich ganz interessant und suche deshalb nach einer Lösung.



EDIT

Hab mir selber nochmal gedanken gemacht und bin nun bei dieser Lösung die soweit cih es ehe auch sehr gut funktioniert:

Code:
private void ArtikelNrIstEinzigartig(){
      for (int i = 0; i < artikel.length; i++) {
         for (int j = 0; j < artikel.length; j++) {
            if( i != j){
               if(artikel[i].getArtikelnummer() == artikel[j].getArtikelnummer()){

                  artikel[i].setArtikelnummer(MRandom.nextInt(10000, 99999)); // liefert eine neue Zufallszahl zwischen 10000 und 99999
                      i = 0;
               }
            }

         }

      }
   }

Danke nochma' an Slater für den Anstoß zu dieser Idee !
 

ARadauer

Top Contributor
sieh dir mal hashset an

du prüfst so lange ob die nummer darin enthalten ist
ist sie darin enthalten, neue nummer, weiter prüfen
ist nicht drin, fügst du sie ein, nächster artikel..

so ungefähr, ungetestet...

Code:
public class Test{
   
   public static void main(String[] args) {
          
    ArrayList<Artikel> artikel = new ArrayList<Artikel>();  
    HashSet<String> nummern = new HashSet<String>();
    
    for(Artikel a: artikel){
       while(nummern.contains(artikel.getArtikelnummer())){
          a.setArtikelnummer(MRandom.nextInt(10000, 99999)); 
       }
       nummern.add(a.getArtikelnummer(());       
    }    
   }
 
}

könnte theoretich eine endlos schleife werdne, wenn alle nummern vergeben sind, aber das ist dein problem ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Standardkonstruktor, Attribute initialisieren Java Basics - Anfänger-Themen 5
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
S Attribute zurücksetzen? Java Basics - Anfänger-Themen 2
K Sichtbarkeit protected: Attribute trotzdem aufrufbar. Java Basics - Anfänger-Themen 4
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
J final attribute erben Java Basics - Anfänger-Themen 2
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
S Objekt-Attribute "variabel" gestalten Java Basics - Anfänger-Themen 10
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
R Zwei Attribute gleichzeitig ausgeben Java Basics - Anfänger-Themen 12
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
S Zufallszahl (Statische Attribute und Methoden) Java Basics - Anfänger-Themen 10
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
X XML-Eintrag an Attribute erkennen Java Basics - Anfänger-Themen 2
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
B Alle Attribute von Klasse bekommen und ändern Java Basics - Anfänger-Themen 12
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
T Kann erbende Klasse Attribute der vererbenden Klasse anpassen (int -> float)? Java Basics - Anfänger-Themen 9
dat_vin OOP Hashmap und Attribute Java Basics - Anfänger-Themen 7
C OOP Array Objektverweise und Attribute Java Basics - Anfänger-Themen 5
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
O Unterschiedliche Attribute in Objekklasse? Java Basics - Anfänger-Themen 5
E Attribute von einem Objekt einer anderen Klasse ändern Java Basics - Anfänger-Themen 4
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
F Attribute von Feldinhalten erkennen Java Basics - Anfänger-Themen 6
A Variablen Attribute Java Basics - Anfänger-Themen 8
F konstante/variable Attribute? Java Basics - Anfänger-Themen 3
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
ElfterDoktor Einen Objekt Attribute/Parameter geben & Auslesen Java Basics - Anfänger-Themen 4
R Zeigerfehler für Attribute Java Basics - Anfänger-Themen 11
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
V OOP Statische Klassen-Attribute vererben Java Basics - Anfänger-Themen 4
T Attribute eines anderen Objektes überprüfen und danach handeln Java Basics - Anfänger-Themen 7
M static Attribute und Vererbung Java Basics - Anfänger-Themen 11
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
E Fehler bei Klassenübergreifende Attribute / Konsturktoren Java Basics - Anfänger-Themen 2
P Attribute von Objekten in Vectoren überprüfen Java Basics - Anfänger-Themen 4
S Attribute darf nur Werte vom Intervall annehmen Java Basics - Anfänger-Themen 5
M Attribute Java Basics - Anfänger-Themen 8
M Attribute und Konstruktor Java Basics - Anfänger-Themen 5
V JNDI / LDAP Attribute eines Benutzers auslesen Java Basics - Anfänger-Themen 1
J Attribute not settable warum ? Java Basics - Anfänger-Themen 6
N finale Attribute in abstrakten Basisklassen Java Basics - Anfänger-Themen 6
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
Q Zugriff auf Attribute einer Unterklasse Java Basics - Anfänger-Themen 7
S OOP Attribute Java Basics - Anfänger-Themen 2
T OOP StringTokenizer, Zuweisung der einzelnen Attribute Java Basics - Anfänger-Themen 21
K Klassen Attribute sortieren Java Basics - Anfänger-Themen 10
S Ausgabe bestimmter Attribute Java Basics - Anfänger-Themen 5
B die einzelnen Attribute einzeln vergleichen Java Basics - Anfänger-Themen 10
L E-Mail Attribute IMAP ändern Java Basics - Anfänger-Themen 4
K Attribute überschreiben! Java Basics - Anfänger-Themen 2
A Stilfrage: statische Methoden und Attribute auf jeden Fall verhindern? Java Basics - Anfänger-Themen 5
dataframe Attribute aus anderen Methoden übernehmen? Java Basics - Anfänger-Themen 14
M Zugriff auf Attribute über Methoden Java Basics - Anfänger-Themen 6
A statische Attribute: Vererbung und Zugriff darauf Java Basics - Anfänger-Themen 15
T Was sind Attribute? Java Basics - Anfänger-Themen 9
G Methode um Attribute auszulesen Java Basics - Anfänger-Themen 5
H attribute die zusammengehören Java Basics - Anfänger-Themen 9
G Wie kann ich auf die Attribute einer anderen Klasse zugreife Java Basics - Anfänger-Themen 5
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
N Unterschied statische Attribute u. Methoden <-> objekt Java Basics - Anfänger-Themen 4
M Attribute werden mit den Startwerten überschrieben. Warum? Java Basics - Anfänger-Themen 12
T Failed to load Main-Class manifest attribute from U.U.jar Java Basics - Anfänger-Themen 3
P Attribute Vererben Java Basics - Anfänger-Themen 2
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
D Session Attribute in JSP ausgeben???? Java Basics - Anfänger-Themen 3
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Auf vollen Monat prüfen? Java Basics - Anfänger-Themen 22
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben