nur das erste Element mit iterator ausgeben

Funkeyfreak

Aktives Mitglied
Hey,

ich habe derzeit die Aufgabe diese beiden Lagerpläne (https://gyazo.com/9aa8d9106d384e42e54ce91f430ad082 https://gyazo.com/4eb32d5cff15cdd9e405a8f0b16c4410 ) in zweidimensionale Arrays zu packen und mit dem Skalarprodukt den kürzesten Weg zu finden.

Kürzeste Weg bedeutet z.B.: Anhand der Areanummer die man selbst vergaben darf und der Ebenenummer kann man herausfinden, in welches Regalfach man ein Produkt einlagern kann (check). Jedoch muss man nun den kürzesten Weg zur Einlagerung bestimmen, d.h. die Artikel werden später auf einen Wagen geladen und eingelagert -> dort soll der Weg möglichst kurz sein (d.h. bei der Einlagerung schon schlau einlagern). Jedoch habe ich keine Ahnung wie ich mit der Areanummer, die ich frei vergeben kann, den kürzesten Weg mithilfe eines oder mehrere zweidimensionalen Arrays berechnen kann.

Wenn ihr ein Tipp oder mir mitteilen könntet wie ihr das Problem angehen würdet, wäre das echt Klasse.
 

mihe7

Top Contributor
Sollst Du die kompletten Pläne abbilden? Mir ist auch noch nicht ganz klar, was ein zweidimensionales Array hier bringen soll (gut, Ebene und Regale wäre denkbar) und noch weniger, was Deine Überschrift mit dem Thema zu tun hat....
 

Funkeyfreak

Aktives Mitglied
Sorry, ich hatte Probleme mit iterator und wollte ein Thread hier erstellen, jedoch habe ich dann eine Lösung gefunden und vergessen als ich den Text gelöscht habe und diesen Text geschrieben habe, die Überschrift zu ändern

Ja ich soll die kompletten Pläne abbilden, also alle Regale/Paletten

Ja dachte daran in dem zweidimensionalen array den Regalen eine Areanummer zuzuweisen und wo kein Regal steht einfach eine 0 zuweisen. Und dann durch eine rekursive methode zu gucken ob von meiner aktuellen position in der Nachbarschaft ein Regal steht wo mein aktueller artikel rein passt.

Aber das eigentliche Problem was ich derzeit habe ist, dass meine aktuelle position sich immer ändern wird, da wenn ich ein regal einlagert habe, dann ist dieses regal meine aktuelle position und von dort muss ich den nächsten kürzesten weg zum nächsten freien Fach finden.

Code mäßig habe ich dass mal entworfen:

Code:
public class ZentralesVerteilungssystem {
  
    private int Ebenenummer;
    private int Regalnummer; //Regalnummer = Area in der sie sich befinden -> wird beim array hinzugefügt
  
    DBConnect connect = new DBConnect();
  
    int kuerzesterWeg (int Regalnummer, int Ebenenummer, int VE_Limit) {
        int z=0;
        int y=1;
        int fach=-1;
        int [][] Erdgeschoss = {
                {1,  2,  3,   4,  5,  6,   7,  8},//0 steht nichts -> zahl = Areanummer
                {9,  10,  11, 12, 13,  14,  0,  16},
                {17, 18, 19, 20,  21, 22, 0, 24},
                {25,  26,  27, 0,  29, 0,   31,  0},
                {33,  0,  35, 0,  37,  38,   39,  0},
                };
      
        int [][] Obergeschoss = {
            {1,  2,  3,   4,  0,  0,   0,  0},//0 steht nichts -> zahl = Areanummer
            {9,  10,  11, 12,  13,  0,   0,  0}, //13=Treppe - Startpunkt
            {17, 18, 19, 20,  21, 22, 23, 24},
            {25,  26,  27, 28,  29, 30,   31,  32},
            {33,  34,  35, 36,  37,  38,   39,  40},
            };
      
        try {
            while (connect.getFaecher(Regalnummer, Ebenenummer, VE_Limit)==-1) {
                if (z%4==0 ) { // -> z wird solange hochgezählt bis ein Fach gefunden das frei ist
                    y=1;    //start bei regalnummer 1
                }
                if (z%4==1) {
                    y=-1;     
                }
                if (z%4==2) { //dauerschleife ->
                    y=8;
                }
                if (z%4==3) {
                    y=-8;
                }
                if (z%4==4) {
                    y=7;
                }
                if (z%4==5) {
                    y=-7;
                }
                if (z%4==6) {
                    y=9;
                }
                if (z%4==7) {
                    y=-9;
                }
                z++;
            kuerzesterWeg (Regalnummer+y,  Ebenenummer,  VE_Limit);
            }
            fach = connect.getFaecher(Regalnummer,  Ebenenummer,  VE_Limit);
            }
      
        catch (Exception e) {
            e.printStackTrace();
        }
        return fach;
      
    }
Code:
public int getFaecher(int Regalnummer, int Ebenenummer, double VEArtikel) {
        int r=-1;
        try {
            String query = "Select VE_Limit, Artikel_ID from regalfach where Regalnummer=? And Ebenenummer =?";
          
            PreparedStatement stmt = con.prepareStatement(query);
            stmt.setInt(1, Regalnummer);
            stmt.setInt (2,Ebenenummer);
            rs = stmt.executeQuery();
          
            while (rs.next()) {
                if(VEArtikel <= rs.getDouble("VE_Limit"))
                {
                    return rs.getInt("Artikel_ID"); 
                }
                }
            }
              
      
        catch(Exception e) {
            System.out.println(e);
        }
        return r;
    }

Jedoch sieht man schnell dass ich probleme mit der rekursion habe und ich derzeit noch keinen wirklichen Lösungsansatz habe.

-> Die idee hinter den +9 -9 etc. ist dass man alle Nachbarn durchguckt und man dies am besten tun kann wenn man die Regalnummer (==Areanummer) anpasst und dort immer guckt.

https://gyazo.com/86bc6042d0781ebcdc0530507435820e -> hier ein Bsp wie ich es aufgeteilt habe
 
Zuletzt bearbeitet:

Funkeyfreak

Aktives Mitglied
Ich will um mich herum gucken ob es dort Regale gibt wo der Artikel reinpasst und wenn es dort keinen gibt, dann nehme ich einen neuen punkt und gucke erneut oben, unten, rechts, links, querrechtsoben, querlinksoben, querrechtsunten, querlinksunten.

Wie ich dass mit Rekursion so hinbekomme dass ich die richtigen Felder auswähle und somit nicht die Felder überprüfe die weiter weg sind, da bin ich grad dran. Da habe ich mein Problem. Ich weiß nicht wie ich dass hinbekommen soll...

Eine andere Methode als die Rekursion fällt mir auch nicht ein
 

lennero

Bekanntes Mitglied
Ich will um mich herum gucken ob es dort Regale gibt wo der Artikel reinpasst und wenn es dort keinen gibt, dann nehme ich einen neuen punkt und gucke erneut oben, unten, rechts, links, querrechtsoben, querlinksoben, querrechtsunten, querlinksunten.

Bin kein Profi aber das hört sich stark nach Tiefensuche an.


Hier mal ein Beispiel:
Java:
public static void dfs(int n, int m, char[][] islands, boolean[][] visited)
    {
        //mark current position as visited
        visited[n][m] = true;

        //check right
        if(m < (islands[0].length - 1) && islands[n][m + 1] == '1' && !visited[n][m + 1])
        {
            dfs(n, m + 1, islands, visited);
        }

        //check left
        if(m > 0 && islands[n][m - 1] == '1' && !visited[n][m - 1])
        {
            dfs(n, m - 1, islands, visited);
        }

        //check above
        if(n > 0 && islands[n - 1][m] == '1' && !visited[n - 1][m])
        {
            dfs(n - 1, m, islands, visited);
        }

        //check below
        if(n < (islands.length - 1) && islands[n + 1][m] == '1' && !visited[n + 1][m])
        {
            dfs(n + 1, m, islands, visited);
        }
    }

Hierbei ist das char array ein Feld welches entweder aus nullen oder einsen besteht. Die Methode sucht also bis eine '1' gefunden wird, danach wird jede Richtung nach weiteren einsen durchsucht.

Das ist natürlich nur ein Beispiel und passt nicht genau zu deiner Aufgabe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
Textsurfer Erste Schritte Ist es der erste Schleifendurchlauf? Java Basics - Anfänger-Themen 4
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
U Wie bekomme ich bei der Ausgabe das erste Komma weg Java Basics - Anfänger-Themen 8
S Erste App Java Basics - Anfänger-Themen 2
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
Farbenfroh Erste GUI Versuche Java Basics - Anfänger-Themen 1
R Java als erste Programmiersprache 5 Auflage Java Basics - Anfänger-Themen 0
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
O Erste Versuche eine Art "EventHandler" zu bauen.. Java Basics - Anfänger-Themen 8
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
E nur der erste (mehrerer Strings) wird ausgegeben Java Basics - Anfänger-Themen 15
C Meine erste Funktion Java Basics - Anfänger-Themen 12
O erste Loggingversuche Java Basics - Anfänger-Themen 12
A Meine erste Bibliothek erstellen Java Basics - Anfänger-Themen 24
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
T Erste Programm Java Basics - Anfänger-Themen 9
T Das erste Programm starten Java Basics - Anfänger-Themen 27
L Erste Klasse Java Basics - Anfänger-Themen 12
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
U Erste Ziffer abspalten Java Basics - Anfänger-Themen 3
J Erste und letzte Zeile in txt Java Basics - Anfänger-Themen 3
J Erste OO-Aufgabe-Probleme mit Aufgabenstellung Java Basics - Anfänger-Themen 32
J Erste Gehvesuche Java Basics - Anfänger-Themen 3
C Erste GUI - Wie auswerten? Java Basics - Anfänger-Themen 3
B Das erste Programm . Java Basics - Anfänger-Themen 4
R Meine erste Klasse: Punkt Java Basics - Anfänger-Themen 3
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
J Neuling und erste Fragen Java Basics - Anfänger-Themen 8
R Erste Schritte,erste Class,Korrekturlesen und Verbesserungen Java Basics - Anfänger-Themen 3
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
J Threads: warten bis erste aktion ausgeführt wurde Java Basics - Anfänger-Themen 6
V Erste Ziffer aus einer dreistelligen "Zahl" heraus Java Basics - Anfänger-Themen 5
G Meine erste IF Abfrage Java Basics - Anfänger-Themen 11
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
D Erste und letzte 3 Buchst. eines Str. in jeweils ein Array Java Basics - Anfänger-Themen 13
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
H Nur die erste Zeile einer Datei auslesen Java Basics - Anfänger-Themen 3
E Erste Schritte - warum läuft nur das eine? Java Basics - Anfänger-Themen 2
R Nur erste Zeile wird ausgelesen Java Basics - Anfänger-Themen 4
K Wortanzahl in erste Zeile schreiben Java Basics - Anfänger-Themen 6
W warum öffnet der nur die erste datei???? Java Basics - Anfänger-Themen 5
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
K Wie kann ich ein Element an den Anfang setzten ? Java Basics - Anfänger-Themen 1
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
Y Wie kann ich ein Element in einer toString finden. Java Basics - Anfänger-Themen 2
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12
S Streams - kleinstes Element finden Java Basics - Anfänger-Themen 4
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
V_Fynn03 Lineare Datenstrukturen Element löschen? Java Basics - Anfänger-Themen 2
J Selektiertes Element von jComboBox zwischenspeichern und wieder einsetzen Java Basics - Anfänger-Themen 0
Curtis_MC Collections Zufälliges Element aus Stack Java Basics - Anfänger-Themen 2
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
X Array erstes und letztes Element tauschen Java Basics - Anfänger-Themen 2
A Konsolenausgabe: Hinter letztes Element ein "}" Java Basics - Anfänger-Themen 2
O Element aus Array löschen Java Basics - Anfänger-Themen 5
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
M Array immer wieder um ein Element erweitern Java Basics - Anfänger-Themen 6
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
D doc.seect jsouo bestimmtes class element finden Java Basics - Anfänger-Themen 1
D Selenium Webdrive get x Element Java Basics - Anfänger-Themen 14
W Element aus HashSet in String umformen Java Basics - Anfänger-Themen 7
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
B Element in Array nach unten verschieben Java Basics - Anfänger-Themen 11
TechGirl JAVA GUI Oberfläche Umkreisung - wie heißt dieses Element? Java Basics - Anfänger-Themen 2
B Methoden Element aus einem Array löschen, Rest nach vorne verschieben? Java Basics - Anfänger-Themen 4
Z Html Element aus der Webseite auslesen Java Basics - Anfänger-Themen 1
A Hash Tabelle Element suchen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben