Ich habe eine Methode, die ein Objekt zu einem Array hinzufügt, aber es fügt es basierend auf Reihenfolge hinzu. Also sagen wir, ich habe ein Array mit einem Apfel und Cola. Wenn ich eine Banane hinzufügen wollte, würde sie zwischen diese beiden Objekte gehen. Aber ich bekomme immer wieder Fehler, wenn ich meine jUnit-Tests durchführe. Hier ist der Code:fügen Sie etwas zu einem Array basierend auf Auftrag
/**
* Adds an item to the list. This method assumes that the list is already
* sorted in alphabetical order based on the names of the items in the list.
*
* The new item will be inserted into the list in the appropriate place so
* that the list will remain alphabetized by names.
*
* In order to accomodate the new item, the internal array must be re-sized
* so that it is one unit larger than it was before the call to this method.
*
* @param itemToAdd refers to a Listable item to be added to this list
*/
public void add(Listable itemToAdd) {
int i;
Listable[] newItems = new Listable[items.length+1];
for(i=0; i<items.length;i++){
if(items[i].getName().compareTo(itemToAdd.getName()) < 0){
newItems[i] = items[i];
} else{
break;
}
}
int str=i;
for(i=str+1;i<items.length;i++){
newItems[i+1] = items[i];
}
newItems[str] = itemToAdd;
}
Ich halte einen Fehler bekommen, das besagt, dass der Test < 14 erwartet> bekam aber < 0> so jetzt denke ich, das bedeutet, es ist mein Konstruktor das ist das Problem:
/**
* This constructor creates an empty list by creating an internal array
* of size 0. (Note that this is NOT the same thing as setting the internal
* instance variable to null.)
*/
public SortedListOfImmutables() {
int i = 0;
items = new Listable[0];
//orders the list
for(i=0;i<items.length;i++){
if(Food.FOOD_OBJECTS[i].getName().compareTo(Food.FOOD_OBJECTS[i+1].getName()) < 0){
items[i] = Food.FOOD_OBJECTS[i];
}else{
items[i+1] = Food.FOOD_OBJECTS[i];
}
}
}
können Sie auch Ihre Junit hier? Ich bin auch neugierig auf die 'Elemente', die ein leeres Array mit der Größe Null sind, und wir fügen etwas in die Schleife hinzu. Fehle ich etwas? – Wizard
Und warum erwartet der Test "14"? Welcher Test, was macht er? Sie machen es sehr schwer, Ihnen zu helfen. – Meier