5
listesinde IndexOf() bir listedeki bir örnek dizini nasıl elde edilir?DART: <a1> Örnek</ a1>
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');
}
'pts.indexOf (25)' ne dönmelidir ? 'X' veya 'y' nin 25 'e eşit olduğu ilk eleman? –
Merhaba! X'in 25'e eşit olduğu ilk öğe. –
Günter'in cevabı, aradığınız şeyi yapmak için harika bir yoldur ve gerçekten de sorduğunuz soruya doğru cevaptır. Ancak, bu aramaları sık sık yapıyorsanız, noktaları x veya y değerinden ayrılmış bir Haritaya kaydetmeyi düşünebilirsiniz. Bu haritaya 'map.values' kullanarak bir liste gibi girebilirsiniz ancak bir x'e bakarak bir noktaya daha çok değer katın (Gunter'in cevabı O (n) iken bir harita O noktasında (log n) zamanını bulur) . –