SplayTreeMap.firstKey în Dart

firstKey returnează cea mai mică cheie a unui SplayTreeMap, iar lastKey cea mai mare, sau null dacă e gol.

Sintaxă
K? firstKey()
K? lastKey()

Ce face SplayTreeMap.firstKey

Pentru că SplayTreeMap ține cheile sortate, află imediat cheia minimă (firstKey()) și maximă (lastKey()). Pe un map gol, ambele returnează null.

Sunt metode, nu getter-e: se scriu cu paranteze.

Ce returnează

Cheia cea mai mică, respectiv cea mai mare, sau null.

Exemple

Exemplul 1: Prima și ultima comandă a zilei

import 'dart:collection';

void main() {
  final comenzi = SplayTreeMap<int, String>.of({
    1430: 'pizza',
    915: 'cafea',
    1205: 'salată',
    1850: 'supă',
  });
  print('Prima la ${comenzi.firstKey()}: ${comenzi[comenzi.firstKey()]}');
  print('Ultima la ${comenzi.lastKey()}: ${comenzi[comenzi.lastKey()]}');

  final gol = SplayTreeMap<int, String>();
  print(gol.firstKey());
}

Rezultat

Prima la 915: cafea
Ultima la 1850: supă
null

Exemplul 2: Cel mai mic preț dintr-o ofertă

import 'dart:collection';

void main() {
  final oferte = SplayTreeMap<double, String>();
  oferte[249.99] = 'eMag';
  oferte[239.50] = 'Altex';
  oferte[255.00] = 'Flanco';
  final minim = oferte.firstKey()!;
  print('Cel mai ieftin: ${oferte[minim]} cu $minim lei');
  print('Cel mai scump: ${oferte.lastKey()} lei');
}

Rezultat

Cel mai ieftin: Altex cu 239.5 lei
Cel mai scump: 255.0 lei

Greșeli frecvente

  • Scrii m.firstKey fără paranteze, ca la first. Este o metodă: m.firstKey().

Comenzi înrudite

  • SplayTreeMap: Map care ține cheile mereu sortate; parcurgerea și print dau cheile în ordine crescătoare.
  • SplayTreeMap.firstKeyAfter: firstKeyAfter dă cea mai mică cheie mai mare decât cea dată; lastKeyBefore dă cea mai mare cheie mai mică.
  • Iterable.first: first și last dau primul și ultimul element; single dă singurul element și verifică faptul că este unul singur.