Methode, Klassen

Hallo zusammen, die Aufgabe lautet:

Implementieren Sie in der Klasse Group die Methode moreThanOne().
Die Methode boolean moreThanOne() soll true zurückgeben, falls es unter den über
das Feld items erreichbaren Objekten mindestens zwei Objekte gibt, die für das Attribut
number den gleichen Wert besitzen; sonst soll false zurückgegeben werden.

Gegebene Klasse:

public class Item
{
private int number, quantity;

public Item(int no, int qy)
{
number = no;
quantity = qy;
}
public int getQuantity()
{
return quantity;
}
public boolean equalNo(Item i)
{
if (i != null) {
return number == i.number;
}
return false;
}
}

Meine Lösung:

public boolean ok(Item v, Item[] arr)
{
for ( int i = 0; i<arr.length; i++)
{
if ( v.equalNo(arr(i)))
{
return true;
}

}
return false;
}
public boolean moreThanOne()
{
int count = 0;

for (int i = 0; i<items.length; i++)
{
if (ok(items(i), items))
{
count ++;
}
}
if ( count >= 2)
{
return true;
}
else
{ return false;}
}
}

Ist das korrekt? Wie hättet ihr es gelöst?
LG
 
Zuletzt bearbeitet:
K

kneitzel

Bitte Code immer in code-tags posten (z.B. erreichbar über das "..." Menü über dem Eingabefeld oder eben einfach in [code] ... [/code] schreiben!).
Sonst wird z.B. das [i] zu der Anweisung, den folgenden Text kursiv darzustellen.
 
Javascript:
// Gegebene Klasse:

public class Item
{
private int number, quantity;

public Item(int no, int qy)
{
    number = no;
    quantity = qy;
}
public int getQuantity()
{
    return quantity;
}
public boolean equalNo(Item i)
{
    if (i != null) {
        return number == i.number;
    }
        return false;
}
}

// Meine Lösung:

public boolean ok(Item v, Item[] arr)
{
    for ( int i = 0; i<arr.length; i++)
    {
    if ( v.equalNo(arr[i])))
        {
            return true;
        }

    }
        return false;
}
public boolean moreThanOne()
{
    int count = 0;

    for (int i = 0; i<items.length; i++)
    {
        if (ok(items[i], items))
        {
            count ++;
        }
    }
    if ( count >= 2)
    {
        return true;
    }
    else
        { return false;}
    }
}
 
K

kneitzel

Hast Du die Lösung denn mal getestet? Das schöne an so Code ist, dass man da einfach verschiedene Werte (Also bei Dir so Item Arrays) vorgeben kann um dann zu sehen, was die Funktionen zurück liefern.

Ich habe es jetzt nicht durchgetestet, aber ich fürchte, dass Du für alle Arrays ab 2 Items immer ein true zurück bekommen wirst.
Und das ist ja nicht das, was gefragt war.

Kannst Du einmal in Worten beschreiben, was Du in ok und moreThanOne machen willst? Dann kommst Du evtl. auch auf den Fehler.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben