vektor bearbeiten??

A

adlerman

Gast
Hallo!!!!!
ich sitze an einer Aufgabe in der ich eure hilfe benötige. gegeben sei ein
vektor mit denn Werten x=[0 0 0 10 10 10 0 0 7 7 0 0 0 0 54 54 54]
ich möchte das gerne mit einer for schleife durchlaufen und in dann so ausgeben
y=[0 0 0 1 1 1 0 0 2 2 0 0 0 0 3 3 3 ]

[Java]for (int i = 0; i < x.length; i++) {
if (x!=0);
y[count]=count;
count++;
}[/Java]
Die Werte im Vektor x sind Grauwerte in einem Bild, und ich möchte diese nach der Reihenfolge setzen.
 

JavaN3rd

Mitglied
Hey

zuerst mal sollte man die Klasse Vector nicht mehr verwenden sondern als Alternative die Klassen aus dem Collection-Framework, dies sind z.B. ArrayList oder LinkedList (einfach mal googeln).

Weiter verstehe ich deine Frage nicht ganz möchtest du die "Liste" x nach der grösse sortieren?
 
A

adlerman

Gast
die werte z.B. 10 oder 7 etc. sind grauwert regionen in einem bild, ich möchte diesen array x so setzen das die regionen nicht 10 etc. sondern 1, 2,3 ...sind

also sprich alle werte mit 10 gleich 1 und alle mit 7 gleich 2 usw.
die regionen sollen also sortiert werden.
 

Michael...

Top Contributor
Kommen zwischen den Bereichen immer 0en vor? Dann könnte man den Vector durchlaufen und dabei zwei Merker verwenden. In einem merkt man sich bzw. erhöht man die Bereichsnr im anderen merkt man sich zwecks Vergleich die zuletzt gefundene Zahl ungleich 0. Stosst man beim Durchlaufen auf eine Zahl ungleich 0 prüft man mit Merker1 ob die selbe Zahl bereits zuvor gefunden wurde. Falls ja ersetzt man den Eintrag durch den Zähler in Merker2 falls nein erhöht man Merker2 um eins merkt sich die Zahl in Merker1 und ersetzt anschliessend die Zahl durch Merker2.
 
A

adlerman

Gast
Ja genau ,es kommen auch Nullen vor. Ist mein Code oben soweit ok, um es so weiter zu implementieren wie du es grad gepostet hast?
 

faetzminator

Gesperrter Benutzer
soll bei [c]x=[0 0 10 10 0 4 4 0 0 0 10][/c] dann [c]y=[0 0 1 1 0 2 2 0 0 0 1][/c] oder [c]y=[0 0 1 1 0 2 2 0 0 0 3][/c] rauskommen?

Edit:
Es spricht eigentlich für den ersten Fall, da die Nullen auch immer als Null betitlet werden. Ausser sie sind ein Sonderfall. Wenn 0 kein Sonderfall ist, dann müsste [c]x=[10 0 4][/c] [c]y=[0 1 2][/c] ergeben!? Ansonsten natürlich [c]y=[1 0 2][/c].
Bitte etwas genauer angeben ;)

@Michael...: es spielt doch überhaupt keine Rolle, ob immer Nullen dazwischen vorkommen!?
 
Zuletzt bearbeitet:

Miggel

Mitglied
@adlerman
Weiter unten ist die Lösung (keien Garantie dass er optimal oder lauffähig ist^^), also nur weiterlesen, wenn dus nicht selbst schaffst ;-)

edit: Falls ein Gebiet doppelt vorkommen kann, dann stimmt die Lösung natürlich nicht mehr...
edit2: Hab`grad festgestellt, dass noch ein Fehler dabei ist. Falls das erste Element im x-Array keine 0 ist, wird das Gebiet '0' anstatt '1' zugewiesen. Der Fehler liegt in der Zeile:
Java:
int lastArea = x[0];
Java:
if (x[i] != lastArea)

Java:
        int[] x = {0, 0, 0, 10, 10, 10, 0, 0, 7, 7, 0, 0, 0, 0, 54, 54, 54};
        int[] y = new int[x.length];
        int currentArea = 0;
        int lastArea = x[0];

        for (int i = 0; i < x.length; i++)
        {
            if (x[i] != 0)
            {
                //Abfrage, falls zwischen den verschiedenen Gebiete keine 0 vorkommt
                //Prüft, ob das aktuelle X noch zum gleichen Gebiet gehört
                if (x[i] != lastArea)
                {
                    currentArea++;
                    lastArea = x[i];
                }

                y[i] = currentArea;
            }
        }
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Wie funktioniert die Zuordnung von 10 zu 1 von 7 zu 2? ist das einfach eine fortlaufende Nummerierung von Werte die != 0 sind?
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Ist eindeutig ein Spezifikationsproblem. Je nach dem ob die Nullen als Extrawurst durchgehen und/oder die Blöcke mit den gleichen Zahlen auch die gleichen Werte erhalten, gibts diese drei Lösungen :bae:
Java:
public static int[] solve1(int[] x) {
    int[] y = new int[x.length];
    int actual = 0;
    int pre = -1;
    for (int i = 0; i < x.length; i++) {
        if (x[i] != 0) {
            if (x[i] != pre) {
                pre = x[i];
                actual++;
            }
            y[i] = actual;
        }
    }
    return y;
}

public static int[] solve2(int[] x) {
    int[] y = new int[x.length];
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    for (int i = 0; i < x.length; i++) {
        if (!map.containsKey(x[i])) {
            map.put(x[i], map.size());
        }
        y[i] = map.get(x[i]);
    }
    return y;
}

public static int[] solve3(int[] x) {
    int[] y = new int[x.length];
    Map<Integer, Integer> map = new HashMap<Integer, Integer>();
    for (int i = 0; i < x.length; i++) {
        if (x[i] != 0) {
            if (!map.containsKey(x[i])) {
                map.put(x[i], map.size() + 1);
            }
            y[i] = map.get(x[i]);
        }
    }
    return y;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Vektor vs List Java Basics - Anfänger-Themen 4
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
O Matrix, Vektor Java Basics - Anfänger-Themen 9
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
M transposen Vektor transformieren Java Basics - Anfänger-Themen 8
M Vektor Rechnung Java Basics - Anfänger-Themen 6
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
B Vektor addieren Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
P Vektor im R3 drehen? Java Basics - Anfänger-Themen 14
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
V Position in einem Vektor Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
A Wie greif ich auf Elemente eines Arrays in einem Vektor zu? Java Basics - Anfänger-Themen 6
D Array? ArrayList? Vektor? ...? Java Basics - Anfänger-Themen 6
C OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben Java Basics - Anfänger-Themen 5
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
S Variable über den Vektor bestimmen Java Basics - Anfänger-Themen 20
J klasse vektor addition Java Basics - Anfänger-Themen 10
M Vektor Klasse Problem Java Basics - Anfänger-Themen 12
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
G Vektor auslesen und als int Variable casten Java Basics - Anfänger-Themen 4
G Mothoden von Objekten in Vektor aufrufen Java Basics - Anfänger-Themen 4
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
G Probleme mit Datenstrukturen (Vektor, HashMap) Java Basics - Anfänger-Themen 5
T Koordinaten eines Vektor übergeben Java Basics - Anfänger-Themen 21
J Vektor in Vektor speichern? Java Basics - Anfänger-Themen 10
J Vektor null setzen Java Basics - Anfänger-Themen 10
R Vektor in verketteter Liste Java Basics - Anfänger-Themen 14
J Vektor + auf Elemente zugreifen funktioniert nicht Java Basics - Anfänger-Themen 11
H Vektor auslesen und durchsuchen Java Basics - Anfänger-Themen 4
G Vektor Java Basics - Anfänger-Themen 1
C "null" Element Vektor abfragen Java Basics - Anfänger-Themen 7
C vektor erschaffen Java Basics - Anfänger-Themen 2
C Ein Element aus Mehrdimensionalem Vektor lesen Java Basics - Anfänger-Themen 2
L Vektor befüllen? Java Basics - Anfänger-Themen 3
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
S kartesischer Vektor im n-dimensionalen Raum. Java Basics - Anfänger-Themen 7
G Objekte in einen Vektor speichern Java Basics - Anfänger-Themen 4
M Vektor, gefüllt mit Objekten einer selbstdefinierten Klasse Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
J tast-Eingabe_(Vektor)Skalar-produkt Java Basics - Anfänger-Themen 19
G elemente in einem vektor nach ihren eigenschaften sortieren Java Basics - Anfänger-Themen 2
G Problem clone und Vektor Java Basics - Anfänger-Themen 4
M Vektor sortieren Java Basics - Anfänger-Themen 7
P Vektor toString? Java Basics - Anfänger-Themen 2
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
I einlaggern von Objekten in ein Vektor Java Basics - Anfänger-Themen 10
G Vektor Java Basics - Anfänger-Themen 3
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
W Array zur Laufzeit bearbeiten? Java Basics - Anfänger-Themen 31
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
A Methoden Array aus verschiedenen Methoden bearbeiten bzw. öffnen Java Basics - Anfänger-Themen 18
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
I Array "bearbeiten Java Basics - Anfänger-Themen 3
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
N Klassenobjekte in einer ArrayList bearbeiten Java Basics - Anfänger-Themen 5
J Textdatei filtern und bearbeiten Java Basics - Anfänger-Themen 1
K Strings bearbeiten Java Basics - Anfänger-Themen 14
S Ordnerstrukturen durchsuchen und Files bearbeiten Java Basics - Anfänger-Themen 6
M Exception werfen und bearbeiten Java Basics - Anfänger-Themen 1
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
M Primefaces tabelle bearbeiten Java Basics - Anfänger-Themen 4
T Textdatei beschreiben/bearbeiten Java Basics - Anfänger-Themen 4
K CSV durchsuchen und bearbeiten Java Basics - Anfänger-Themen 1
S externe Datei erstellen, oeffnen, bearbeiten Java Basics - Anfänger-Themen 2
P Bild bearbeiten Java Basics - Anfänger-Themen 9
J Variablen Bearbeiten von Variablen aus anderen Klassen Java Basics - Anfänger-Themen 23
M Dateien erstellen/ bearbeiten/ lesen Java Basics - Anfänger-Themen 9
A JList bearbeiten Java Basics - Anfänger-Themen 2
P Per Button, Linien Hinzufügen und bearbeiten Java Basics - Anfänger-Themen 30
L Input/Output Text Dateien einlesen, bearbeiten und speichern Java Basics - Anfänger-Themen 9
Y Objekte "extern" bearbeiten Java Basics - Anfänger-Themen 3
S Von Button und Radio Button Aktion bearbeiten Java Basics - Anfänger-Themen 10
C Source File bearbeiten und neu Kompilieren Java Basics - Anfänger-Themen 5
2 Input/Output In Java Dateien öffnen/bearbeiten? Java Basics - Anfänger-Themen 9
S Bearbeiten Von Exceldatei mit JExcelAPI Java Basics - Anfänger-Themen 2
K Umgebungsvariable Pathvariable Button "bearbeiten" nicht drückbar Java Basics - Anfänger-Themen 4
C Java Felder bearbeiten Hilfe Java Basics - Anfänger-Themen 4
F daten in dropbox bearbeiten Java Basics - Anfänger-Themen 23
c_sidi90 Excelfile bearbeiten ohne zu überschreiben? Java Basics - Anfänger-Themen 25
K Ausgeführte JAR bearbeiten Java Basics - Anfänger-Themen 5
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
StupidAttack String bearbeiten Java Basics - Anfänger-Themen 7
P mit java text-datei auslesen und weiter bearbeiten Java Basics - Anfänger-Themen 3
Z Sonderzeichen in einem String gezeichnen/bearbeiten Java Basics - Anfänger-Themen 6
D csv einlesen, bearbeiten Java Basics - Anfänger-Themen 2
P String bearbeiten Java Basics - Anfänger-Themen 2
T Ringe erzeugen und bearbeiten Java Basics - Anfänger-Themen 16
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben