Java-äquivalent zu c++ equal_range (oder lower_bound & upper_bound)

Ich habe eine Liste von Objekten sortiert und ich auf der Suche nach dem ersten auftreten und dem letzten vorkommen eines Objekts an. In C++ kann ich problemlos verwenden std::equal_range (oder nur einen lower_bound und eine upper_bound).

Beispiel:

bool mygreater (int i,int j) { return (i>j); }

int main () {
  int myints[] = {10,20,30,30,20,10,10,20};
  std::vector<int> v(myints,myints+8);                         //10 20 30 30 20 10 10 20
  std::pair<std::vector<int>::iterator,std::vector<int>::iterator> bounds;

  //using default comparison:
  std::sort (v.begin(), v.end());                              //10 10 10 20 20 20 30 30
  bounds=std::equal_range (v.begin(), v.end(), 20);            //         ^        ^

  //using "mygreater" as comp:
  std::sort (v.begin(), v.end(), mygreater);                   //30 30 20 20 20 10 10 10
  bounds=std::equal_range (v.begin(), v.end(), 20, mygreater); //      ^        ^

  std::cout << "bounds at positions " << (bounds.first - v.begin());
  std::cout << " and " << (bounds.second - v.begin()) << '\n';

  return 0;
}

In Java, scheint es keine einfache äquivalenz? Wie soll ich mit der gleichen range mit

List<MyClass> myList;

Übrigens, ich bin mit einem standard-import von java.util.Liste;

  • Für diejenigen von uns, die sprechen nicht "C", können Sie beschreiben, was Sie wollen in Englisch mit Beispielen?
InformationsquelleAutor Gob00st | 2013-03-24
Schreibe einen Kommentar