Hallo,
ich soll ein vorgegebenes Interface implementieren, nur habe ich schon einige Probleme mit der ersten Methode:
Das Problem besteht darin, das ich nicht weiss, wie ich ein Element von haystack mit dem key needle vergleichen kann?
Ich habe versucht mit ((haystack.get(mid)).equals(needle)) usw, doch ich finde einfach nichts zum vergleichen. Und was soll das für ein Rückgabewert sein? ich will am Schluss ja das object in
haystack, das den gleichen key hat wie needle zurückgeben? also doch return haystack.get(mid) oder?
Kann mir jemand helfen?
mfg Kurt
Edit: sollte wohl ( (needle.compareTo(haystack.get(mid).key)) < 0) sein zum vergleichen oder?
ich soll ein vorgegebenes Interface implementieren, nur habe ich schon einige Probleme mit der ersten Methode:
Java:
/**
* Performs a binary search on the vector of {@link Unit}s.
*
* @param needle
* We are looking for something whose key equals this needle with
* respect to the {@link Comparable} interface.
* @param haystack
* The vector of {@link Unit}s where we are searching for the
* needle. This vector must be sorted ascending with respect to
* the keys and the {@link Comparable} interface.
* @return A thing from the haystack whose key equals the needle or null
* if no such thing is in the haystack.
*/
public Value find(ArrayList<Unit<Key, Value>> haystack, Key needle)
{
int mid = (haystack.size() / 2);
if ( haystack.get(mid) == needle )
{
find((ArrayList<Unit<Key, Value>>) haystack.subList(0, mid-1), needle);
}
else if ()
{
return find((ArrayList<Unit<Key, Value>>) haystack.subList(mid, haystack.size()), needle);
}
else return haystack.;
}
Das Problem besteht darin, das ich nicht weiss, wie ich ein Element von haystack mit dem key needle vergleichen kann?
Ich habe versucht mit ((haystack.get(mid)).equals(needle)) usw, doch ich finde einfach nichts zum vergleichen. Und was soll das für ein Rückgabewert sein? ich will am Schluss ja das object in
haystack, das den gleichen key hat wie needle zurückgeben? also doch return haystack.get(mid) oder?
Kann mir jemand helfen?
mfg Kurt
Edit: sollte wohl ( (needle.compareTo(haystack.get(mid).key)) < 0) sein zum vergleichen oder?
Zuletzt bearbeitet: