Methoden Methode zum durchsuchen einer ArrayList

tinmi

Mitglied
Hallo Leute,

stehe nun doch seit längerem vor einem Problem mit der ArryList!

Wir haben in der Schule eine DVD-Verwaltung programmieren müssen,
was ja nicht das all zu große Problem war.

Nun speichert man aber alle Titel mit Preis und Seriennummer in eine ArrayList und muss diese im anschluss nach den passenden Titel durchsuchen.

D.h.: Man gibt z.b.: Titel: A ein und er soll dir in einer JOptionPane alle Titel ausgeben,
welche ein A enthalten.


Den Code findet ihr in meiner OwnCloud:
http://cloud.tinnacher-michael.at/index.php/s/vHwMWAFGvRqln88


Ich hoffe ihr könnt mir helfen

lg
tinmi
 
Der Ansatz ist doch schon mal richtig

Dann versuch doch mal was in Java umzusetzen - poste es und wir werden dich schon zum Ziel führen 😉
 
Also hier ein bisschen Code:

Gehört zur Klasse Inventory.

Java:
public String[] getSearch(DVD l)
    {
        //Array erstellen
        String search[] = new String[dvd.size()];
    
        //ArrayListe durchsuchen
        for(int i=0;i<dvd.size();i++)
        {
        
            if(l.getTitle().equals(dvd.get(i)))
            {
                //Ausgabe nur für Testzwecke
                System.out.println("Titel: "+dvd.get(i).getTitle());
            }
        }
    
        return search;
    }

Es funktioniert so halb.
 
1)
Es funktioniert so halb.

... ist keine Aussage .. was funktioniert denn nicht 🙂

2)
[public String[] getSearch(DVD l)

String search[] = new String[dvd.size()];

Du musst dich schon für einen Variablennamen entscheiden - entweder l oder dvd 😉 [Tipp: dvd ist besser 😛 ]

3)
Dir Fehlt ein Paramter in deiner Methode. Bzw hast du, glaube ich, ein Denkfehler drin. (Kommt wegen Punkt 2).

Du willst in deiner Methode eine Liste überprüfen, ob sie einen bestimmten Titel hat. Title und Liste müssen beide als Paramter übergeben werden.
Der Pseudocode könnte also so aussehen:
Java:
private String[] getSearch(DVD dvdList, String title)
{
     String[] list = new String[]; // du hast an dieser Stelle die Länge deiner DVD Liste genommen - die beiden haben aber nicht zwangsläufig die selbe länge :)
     for(int i = 0; i < list.size(); i++)
     {
         [B] WENN [/B]dvdList an der Stelle i [B]EQUALS [/B]title
          {
                [B]DANN [/B]füge dvdList an der Stelle i in list hinzu
          }
     }

    return list;
}

Wie gesagt es ist pseudocode - soll dir nur als Anregung dienen 😉

Gruß
Robert
 
Meinst du hier eigentlich eine ArrayList oder ein Array?
Eine ArrayList ist ein generisches Standard Java Konstrukt.
Diese ArrayList hat schon Methoden die dir deine Dvds geben.
Java:
public class DvdVerwaltung {
   private List<Dvd> listOfDvds = new ArrayList<>();

   public List<Dvd> getDvdByTitleWithStream(String character) {
      return listOfDvds.stream()
          .filter(dvd -> dvd.getTitle().contains(character))
          .collect(Collectors.toList());
   }

   public List<Dvd> getDvdByTitleOldSchool(String character) {
      List<Dvd> dvds = new ArrayList<>();
      for(Dvd dvd : listOfDvds) {
          if(dvd.getTitle().contains(character)) {
             dvds.add(dvd);
          }
      }
      return dvds;
   }
}

Hier mal zwei Methoden mit deren Hilfe du die Dvd aus einer ArrayList bekommst.
Die erste Methode (...WithStream) ist die neuere Java8 Variante.
Das gleiche macht (...OldSchool).
 
Zuletzt bearbeitet:
@Jardcore
wäre es nicht "besser" ein Array / ArrayList zurück zugeben? Einfach aus dem folgenden Grund, dass ja -warum auch immer - mehrere Dvds mit dem Titel vorhanden sein können.

Ausserdem fällt mir gerade auf:

D.h.: Man gibt z.b.: Titel: A ein und er soll dir in einer JOptionPane alle Titel ausgeben,
welche ein A enthalten.

Nach seiner Aussage müssten unsere beiden Möglichkeiten also contains anstatt equals verwenden 😛

Gruß
Robert
 

Neue Themen


Zurück
Oben