W języku Java 1.6 wprowadzono interfejsy NavigableMap (i NavigableSet) i zaktualizowano TreeMap w celu implementacji nowego interfejsu. Między innymi, NavigableMap jest przydatna do zadawania pytań typu "Który element w kolekcji jest najbliższy X?" (Patrz this excellent blog post by François Sarradin na przykład i dyskusję) .Czy istnieje wersja NavalableMap w Scali?
Miałem nadzieję znaleźć coś podobnego w implementacji TreeMap Scala 2.8 , ale niestety, wydaje się, że tak nie jest (przynajmniej nie jest to oczywiste) Czy istnieje inna klasa lub cecha Scala, która jest podobna do Java NavigableMap? Jeśli nie, czy są jakieś proste idiomy Scala, które mogą być użyte aby osiągnąć coś podobnego?
Zdaję sobie sprawę, mogę używać TreeMap Javy, ale chciałbym pozostać w ramach kolekcji Scala (jeśli tylko dla uproszczenia).
Jest całkiem jasne, w jaki sposób zamek może pomóc w modyfikowaniu (kopiowaniu) drzewa, ale nie jest jasne, w jaki sposób suwak byłby używany do odpowiadania na pytania typu "Który element w kolekcji jest najbliższy X?". Wiem, że mówimy tu głównie o teorii (ponieważ zamki wydają się być w większości eksperymentalne), ale czy możesz opisać, w jaki sposób zamek błyskawiczny może odpowiedzieć na wcześniej wspomniane pytanie? –
@Jim Zippers w ogóle nie są eksperymentalne. Zamki mają dwa rodzaje operacji: inspekcja/aktualizacja i nawigacja. Tak więc, jeśli masz zamek błyskawiczny w X, jego operacje nawigacji naturalnie dadzą Ci najbliższe elementy. –
Ah Widzę teraz! Dzięki. Pytanie, które łączyłeś z zamkami błyskawicznymi, sprawiło na mnie wrażenie, że zamki błyskawiczne były eksperymentalne. Cieszę się, że są łatwo dostępne. –