Wiedereinmal arrays :-s

Status
Nicht offen für weitere Antworten.

bilicim

Mitglied
ich versuche gerade eine methode zu schreiben, die die anzahl einzigartiger elemente ausgibt.

unbenannten6.jpg


Code:
public class Wortmenge {

    private String[] woerter;

    public Wortmenge(String[] woerter) {
        this.woerter = woerter;
    }
    
    public int gibAnzahl() {
        int i = 0;
        int j = 1;
        int anzahlWort = 1;

        while (i<woerter.length && j<woerter.length) {
            
            if (!(woerter[i].equals(woerter[j]))) {
                anzahlWort = anzahlWort + 1;
                j++;
                            .
                            .
                            .
            }

ich glaube ich gehe ganz falsch an die aufgabe ran. kann mir bitte jemand auf die sprünge helfen?
habe versucht alle werte miteinander zu vergleichen aber dann wiederhole ich einige vergleiche und anzahlWort steigt, obwohls nicht stimmt
 
S

SlaterB

Gast
immer nur zwei Wörter zu vergleichen bringt dir nur wenig Information,
ein int-Wert anzahlWort kann dir später beim Auftauchen eines Wortes x auch kaum sagen, ob genau dieses x schon bekannt ist oder nicht,

der typische Weg ist, ein Set zu eröffnen, z.B. ein HashSet,
und dort alle Wörter einzufügen, Doppelte werden dabei automatisch gelöscht
 

bilicim

Mitglied
hm kann ich diesen hashset auch selber implementieren? weil wir dürfen noch nicht behandelte themen in der klausur nicht benutzen. darf nur stink normale arrays benutzen :-s
 
S

SlaterB

Gast
dann erstelle dir ein genügend großes Array,

durchlaufe die Ursprungs-Liste mit zwei Laufvariablen
(normalerweise benutzt man dafür zwei for-Schleifen ineinander, deine while-Konstruktion ist sehr kompliziert)

pro Wort durchläufst du das neue Array und schaust nach ob schon vorhanden,
wenn ja dann zum nächsten Wort, ansonsten das aktuelle Wort ins neue Array einfügen
 
G

Guest

Gast
bilicim hat gesagt.:
hm kann ich diesen hashset auch selber implementieren? weil wir dürfen noch nicht behandelte themen in der klausur nicht benutzen. darf nur stink normale arrays benutzen :-s
Wenn ihr nur selbstgeschriebene methoden benutzen dürft denke ich nicht das der Lehrer auf Hastable hinauswill.

Eine Möglichkeit wäre das du jeden Wert mit jedem Wer vergleichst der einen kleineren Index hat.
Also: Wenn der index i = 10 ist, dann musst du dessen Wert mit jedem Wert dessen Index < 10 ist vergleichen. usw...
 

Ebenius

Top Contributor
Für Klausuren und Hausaufgaben bei denen man die Finger abgehackt bekommt (z.B. "Du darfst kein HashSet verwenden, obwohl es eine gute Lösung darstellen würde") galt für mich immer: So wenig Aufwand wie möglich. Also ungefähr so:
Code:
final String[] treffer = new String[woerter.length];
int anzahlTreffer = 0;
eingabeSchleife: for (int eingabeIndex = 0; eingabeIndex < woerter.length; eingabeIndex++) {
  final String wort = woerter[eingabeIndex];
  for (int trefferIndex = 0; trefferIndex < anzahlTreffer; trefferIndex++) {
    if (treffer[trefferIndex].equals(wort)) {
      continue eingabeSchleife;
    }
  }
  treffer[anzahlTreffer++] = wort;
  System.out.println(wort);
}

Ebenius
 
G

Guest

Gast
Warum immer final?
Einfach damit man einen schonmal ins treffer-Array gespeichert wert nicht mehr ändern kann?
 
S

SlaterB

Gast
> Warum immer final?

falsche Frage, eher immer final und nur nicht final wenn nötig ;)
falls man darauf Wert legt,
und final bedeutet nur, dass man der Variablen kein neues Array zuweisen kann, das Array selber kann normal verändert werden
 
K

Kurz-und-Schmerzlos

Gast
Code:
public static int einmalig(String[] woerter) {
  int anzahlEinzige = woerter.length;
  for (int ind = 0; ind < woerter.length - 1; ind++) {
    int vgl = ind + 1;  
    while  (vgl < woerter.length && !woerter[ind].equals(worter[vgl++]);
    if (vgl < woerter.length)
      anzahlEinzige--;
  }
  return anzahlEinzige;
}
 

Ebenius

Top Contributor
Kurz-und-Schmerzlos hat gesagt.:
Code:
while  (vgl < woerter.length && !woerter[ind].equals(worter[vgl++]);
  if (vgl < woerter.length)
    anzahlEinzige--;
}
Kurz und schmerzlos und nicht kompilierbar. :)

Der TO wollte doch die einmaligen ausgeben... Oder doch nur zählen?
 
K

Kurz-und-Schmerzlos

Gast
Tatsache. Ich habe es gewagt, ein e zu vergessen. Der Ersteller scheint in der Lage gewesen zu sein, diesen massiven Fehler zu korrigieren.

die anzahl einzigartiger elemente
 

bilicim

Mitglied
dank netbeans sind solche kleinen schreibfehler sofort bemerkbar ;)
aber leider gibt dieser code nicht die einmaligen elemente aus.
 

bilicim

Mitglied
hmm komisch.. warum klappt das denn bei mir nicht.. ich habe die klammersetzung noch ergänzen müssen, weil netbeans meckert.. hab da wohl was falsch gemacht aber eigentlich müsste es richtig ein :-s
 

bilicim

Mitglied
achso sorry, ja der klappt auch bei mir.. versuche gerade den ohne continue hinzubekommen. wir dürfen nicht immer alles benutzen, das sind punktabzüge :-s

beispielsweise haben wir bisher immer gelernt, dass while eine schleife ist.. und haben nie wie ein ausdruck mit ; beendet
 

Ebenius

Top Contributor
Schleifen ohne Körper werden auch gern diskutiert. Ich versuche das zu vermeiden, andere mögen's...

Ohne continue geht zum Beispiel auch das:
Code:
final String[] treffer = new String[woerter.length];
int anzahlTreffer = 0;
for (int eingabeIndex = 0; eingabeIndex < woerter.length; eingabeIndex++) {
  final String wort = woerter[eingabeIndex];
  boolean wortErstmalig = true;
  for (int trefferIndex = 0; trefferIndex < anzahlTreffer && wortErstmalig; trefferIndex++) {
    if (treffer[trefferIndex].equals(wort)) {
      wortErstmalig = false;
    }
  }

  if (wortErstmalig) {
    treffer[anzahlTreffer++] = wort;
    System.out.println(wort);
  }
}

Viel Spaß, Ebenius
 

bilicim

Mitglied
ne ne danke, verstehen tu ichs.. aber habe probleme beim umändern oder was selber schreiben.. bin halt kein geborener programmierer :(
 

Ebenius

Top Contributor
bilicim hat gesagt.:
ne ne danke, verstehen tu ichs.. aber habe probleme beim umändern oder was selber schreiben.. bin halt kein geborener programmierer :(
Wer wird schon als solcher geboren? Ich hatte das Glück, von meinem Onkel mit 10 Jahren einen Atari 800XL geschenkt zu bekommen. Ein Diskettenlaufwerk hab ich erst ein paar Monate später bekommen. Dafür hatte ich von Anfang an ein Basic-Handbuch. Hat mich halt total begeistert, der Maschine Dinge sagen zu können, und die hat dann gemacht was ich ihr gesagt habe. Und seitdem programmiert man halt dies und das. Seit einigen Jahren auch beruflich. Aber geboren wurde ich als Nichtprogrammierer. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wiedereinmal ScrollPane Java Basics - Anfänger-Themen 9
C ini Dateien *wiedereinmal* ;-) Java Basics - Anfänger-Themen 8
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3
K Sudoku mit 2D Arrays Java Basics - Anfänger-Themen 19
T Vertikales Histogramm mit Arrays Java Basics - Anfänger-Themen 3
JD_1998 Arrays einlesen, zwischenspeichern und wieder ausgeben Java Basics - Anfänger-Themen 8
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
F Arrays: Mathematische Funktion Java Basics - Anfänger-Themen 19
mihe7 Von Datentypen und (mehrdimensionalen) Arrays Java Basics - Anfänger-Themen 4
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
N Probleme beim printen von Arrays durch for Schleife Java Basics - Anfänger-Themen 3
L If und else bei 2 Dimensionalen Arrays Java Basics - Anfänger-Themen 8
1 Arrays Java Basics - Anfänger-Themen 7
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
S Übergabe von Arrays an Methoden Java Basics - Anfänger-Themen 20
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J 2D Arrays summieren Java Basics - Anfänger-Themen 21
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
A Java.util.Arrays Java Basics - Anfänger-Themen 15
T Methodenverknüpfung mit Arrays Java Basics - Anfänger-Themen 4
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
B Arrays Java Basics - Anfänger-Themen 4
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
A Summe des Arrays pd mit alternativer Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
F Mehrdimensionale Arrays Java Basics - Anfänger-Themen 12

Ähnliche Java Themen


Oben