5
Jak uzyskać indeks jednej instancji na liście?DART: indexOf() na liście instancji
class Points {
int x, y;
Point(this.x, this.y);
}
void main() {
var pts = new List();
int Lx;
int Ly;
Points pt = new Points(25,55); // new instance
pts.add(pt);
int index = pts.indexOf(25); // Problem !!! How to obtain the index in a list of instances ?
if (index != -1){
Lx = lp1.elementAt(index).x;
Ly = lp1.elementAt(index).y;
print('X=$Lx Y=$Ly');
}
Co 'pts.indexOf (25)' powrócić? Pierwszy element, w którym 'x' lub' y' jest równy '25'? –
Cześć !! Pierwszy element, w którym x równa się 25. –
Odpowiedź Guntera jest świetnym sposobem na zrobienie tego, czego szukasz, i jest rzeczywiście poprawną odpowiedzią na zadane pytanie. Jednakże, jeśli często wykonujesz te wyszukiwania, możesz rozważyć zapisanie punktów na mapie wykreślonej z wartości x lub y. Nadal możesz uzyskać dostęp do tej mapy jak listy używając "map.values", ale wyszukiwanie wartości Point by x będzie znacznie szybsze (odpowiedź Guntera to O (n), podczas gdy mapa znajdzie czas Point in O (log n)) . –