Rozmiar wydaje się niepotrzebnym wysiłkiem. Ponadto korzystanie z dobrze znanej i utrzymanej biblioteki, takiego jak guava, może zaoszczędzić czas rozwoju i zapewnić lepszą niezawodność.

odpowiedział 11 października 2012 o 8:07

6 872 4 4 złote odznaki 23 23 Srebrne odznaki 46 46 Brązowe odznaki

W świetle wyjaśnień sugerowałbym użycie drzewa B+. Ta często używana struktura danych gwarantuje posortowaną kolejność, umożliwia duplikaty i zapewnia wydajne operacje wstawiania i aktualizacji. Oferuje również szybkie możliwości wyszukiwania i zasięgu.

odpowiedział 11 października 2012 o 7:41

26.7K 51 51 Złote odznaki 182 182 Srebrne odznaki 254 254 Brązowe odznaki

Byłby wysoce przenośny z słoikiem Mavona i bez zależności zewnętrznych (chociaż test jednostkowy CL może być ładny, ale przełączyłem test z powrotem na Junit)

11 października 2012 o 8:59

Możesz użyć Treemapa. Jest zaimplementowany z czerwono-czarnym drzewem, umożliwia duplikaty i oferuje logarytmiczną złożoność czasu dla operacji wstawiania i wyszukiwania. Dodatkowo Treemap jest zawarty w bibliotece Standard Java, więc nie będziesz mieć żadnych zewnętrznych zależności.

odpowiedział 11 października 2012 o 8:48

12.9K 11 11 Złote odznaki 57 57 Srebrne odznaki 77 77 Brązowe odznaki

Co do wydajności: LinkedList jest najwolniejszy. Potem przychodzi ArrayList. Inne implementacje skalują się z liczbą elementów.

11 października 2012 o 7:10

Korzystanie z LinkedList lub ArrayList i sortowanie przed każdą operacją wyszukiwania rzeczywiście byłoby nieefektywne. Jeśli chcesz posortować kolekcję, która umożliwia duplikaty i zapewnia szybkie wstawienie i aktualizację, możesz rozważyć użycie listy Skip. Ma podobną złożoność czasu jak zrównoważone drzewo wyszukiwania binarnego, ale pozwala uniknąć operacji równoważenia.

odpowiedział 11 października 2012 o 8:33

34.7K 49 49 Złote odznaki 129 129 srebrnych odznak 158 158 brązowe odznaki

Masz wiele opcji sortowanych kolekcji, które pozwalają duplikatom. Niektóre z popularnych wyborów to:

  • TREESET: Wdraża interfejs SortEdset w Javie. Jest wspierany przez Treemap i zapewnia wydajne operacje wprowadzania, usuwania i wyszukiwania.
  • Treemultiset (z guawy): Ta klasa zapewnia sortowaną kolekcję, która pozwala duplikatom za pomocą zapasowej Treemultiset.
  • ConcurrentSkipListsSet: Jest to współbieżna implementacja interfejsu sortEdset. Wykorzystuje listę SKIP jako podstawową strukturę danych.
  • B+ Tree: Self-Balansujące drzewo wyszukiwania, które jest powszechnie używane w bazach danych w celu zapewnienia szybkiego wyszukiwania wartości kluczowej.

Ostatecznie wybór zależy od konkretnych wymagań i kompromisów. Ważne jest, aby wziąć pod uwagę czynniki takie jak złożoność, wydajność pamięci, wydajność i łatwość użytkowania. Możesz eksperymentować z różnymi opcjami i porównać je, aby znaleźć najbardziej odpowiednie rozwiązanie dla swojego przypadku użycia.

odpowiedział 29 czerwca 2021 o 9:20

1 781 3 3 złote odznaki 11 11 Srebrnych odznaki 30 30 brązowe odznaki

Java: sortowana kolekcja, która umożliwia duplikaty, jest wydajna pamięć i zapewnia aktualizację szybkiej wstawki

Nie zapytam o przyczyny tego zachowania priorytetowego, ponieważ dyskusja tutaj całkiem ładnie obejmuje to. Chcę jednak zapytać, czy istnieją jakieś alternatywy, których nie wiem?

Czy sortowany zestaw pozwala na duplikaty?

Zestaw zamówiony zawiera unikalne elementy w sortowanej kolejności, podobnie jak zestaw. W przypadku uporządkowanego zestawu z duplikowanymi elementami używany jest typ danych pary zamiast INT, gdzie pierwsza wartość pary będzie przechowywać element, a druga wartość przechowuje odpowiednie indeksy. W ten sposób każda para w zamówionym zestawie będzie unikalna i można łatwo przechowywać zduplikowane elementy tablicy.

Operacje:

1. order_of_key (): Akceptuje element jako parametr i zwraca liczbę elementów mniej niż klawisz. Podczas jego wdrażania musimy przekazać parę jako parametr, którego pierwszą wartością musi być liczba, dla której chcemy wynik, a druga wartość będzie zawierać wartość ujemną E.G., -1 Ponieważ wstawione pary w COMERED_SET będą miały wartość większą niż równą 0, ponieważ oznacza indeksy tablicy.

2. find_by_order (): Akceptuje indeks jako parametr i zwraca iterator do elementu I th (para) w kolejności sortowanej.

Przykład:

Załóżmy, że istnieje uporządkowana para ustawiona mySet =

Tutaj,

  • Uporządkowana para zestawu ma duplikat elementów.
  • Po włożeniu wszystkich elementów w zamówienie_set_pair,
  • MySet.order_of_key (): Da liczbę elementów mniejszych niż 5 i.E, 6.
  • MySet.Find_By_Order (8): Da iterator do 8. elementu w uporządkowanym zestawie i.E, 7.

Poniżej znajduje się program C ++ do wdrożenia powyższego podejścia:

Java: sortowana kolekcja, która umożliwia duplikaty, jest wydajna pamięć i zapewnia szybką aktualizację + aktualizację

Każdy, kto ma lepsze sugestie? Czy powinienem odgrywać własną sortowaną aspekt danych (która z nich?)? Byłyby również inne źródła (w Javie, open source, z testami jednostkowymi i małymi DEP).

Aktualizacja

Więcej szczegółów na temat mojego przypadku użycia (chociaż mam podobny popyt w ostatnim czasie). Mam kolekcję (z milionami) referencji, w których chcę być w stanie

  • do ankiety lub uzyskania najmniejszego elementu dotyczącego pola S
  • i zaktualizuj pola S za pomocą pola A
  • Mogą zdarzyć się identyczne wartości pola S. pole A jest w rzeczywistości liczbą całkowitą wskazującą w inną tablicę
  • Jedyną zależnością, jaką chcę, jest Trove4J. Mógłbym użyć innej, jak kolekcje Mahout, gdyby to byłoby wymagane. Ale nie guava, ponieważ chociaż ładna lib, kolekcje nie są dostrojone do pamięci (boks/rozpakowanie).

Więc wszystkie płacze za stosy Fibonacciego, ale obawiam się, że ma zbyt wiele kosztów ogólnych na element -> To był powód, dla którego pomyślałem o bardziej wydajnym rozwiązaniu „posortowanej tablicy+segmentowej”.

1 1 1 Srebrna odznaka

zapytał 10 października 2012 o 20:15

17k 16 16 złote odznaki 97 97 Srebrne odznaki 196 196 Brązowe odznaki

Jaki był problem z korzystaniem z guawy treemultiset ?

10 października 2012 o 20:22

@Vainolo Zależność zewnętrzna zgodnie z uwagą OP.

10 października 2012 o 20:24

Może być pomocne – Złożoność Kekury: bigocheatsheet.com

11 lipca 2017 o 14:29

6 Answers 6

Kiedy potrzebujesz posortowanej kolekcji, powinieneś dokładnie przeanalizować swoje potrzeby.
Jeśli większość operacji jest Wkładanie i tylko nieliczni do wyszukiwania, a następnie za pomocą posortowanej kolekcji i.mi. Utrzymuj elementy posortowane w kolekcji stale, nie byłoby dobrą opcją (ze względu na narzut utrzymania elementów sortowane na wstawce, które byłyby najczęstszą operacją).
W takim przypadku najlepiej byłoby zachować nieposortowany zbieraj i wykonuj sortowanie tylko w razie potrzeby. I.mi. Przed wyszukiwaniem. Możesz nawet użyć prostej listy i posortować ją (za pomocą kolekcji.Sortuj ja.mi. łączy) w razie potrzeby. Ale polecam to ostrożnie, podobnie jak to, aby było skuteczne, zakłada się, że pracujesz nad dużymi danymi. W naprawdę małych danych nawet wyszukiwanie liniowe jest wystarczająco dobre.

Jeśli większość operacji jest badawczy Następnie możesz użyć posortowanej kolekcji, która z mojego punktu widzenia istnieją struktury danych do wyboru (niektóre już wspomniane) i możesz porównać, który pasuje twój wymagania.

odpowiedział 10 października 2012 o 20:25

52.7K 66 66 Złote odznaki 207 207 Srebrne odznaki 338 338 Brązowe odznaki

To nie odpowiada na pytanie, to naprawdę to powraca

28 czerwca 2021 o 20:51

A co z guavą treemultiset? O co prosiłeś: posortowana kolekcja, która akceptuje duplikat. Nie wiem nic o jego wydajności.

3 280 5 5 złote odznaki 35 35 srebrnych odznak 49 49 brązowych odznaki

odpowiedział 10 października 2012 o 20:21

6 872 4 4 złote odznaki 23 23 Srebrne odznaki 46 46 Brązowe odznaki

Już go dodałem, ale myślę, że (jeszcze nie patrzyłem na kod), że implementacja jest prawie identyczna z mapą>, ale głównym problemem jest zależność

10 października 2012 o 21:22

Wydaje się, że z kodu jest zupełnie nową implementacją. Dużo kodu. I możesz pobrać źródło i dodać je do swojego projektu, więc jaki jest problem? koncesjonowanie?

10 października 2012 o 21:28

Rozmiar słoika. Moja aplikacja powinna być mała i przenośna.

11 października 2012 o 7:10

A co z użyciem narzędzi takich jak proguard do kompresji słoika po zakończeniu programowania? Pisanie własnej biblioteki tylko z powodu wielkości słoika nie jest dobrą inwestycją twojego czasu.

11 października 2012 o 7:38

Cóż, chciałbym utrzymać mój (open source) w czystości i tylko z kilkoma zależnościami. I tylko z powodu jednej danych z danych zdecydowanie nie będę polegał na całej bibliotece. Mam już Trove4J i nie chcę jeszcze innej kolekcji lib

11 października 2012 o 9:53

Postanowiłem rzucić własne, ale nie optymalne rozwiązanie tylko wariant Treemap. Będę na bieżąco, jeśli dostosuję tę kolekcję w odniesieniu do pamięci. Prędkość jest już znacznie lepsza niż poprzednia próba priorytetu, ponieważ potrzebowałem kolekcji.Usuń (obiekt) metodę (do aktualizacji wpisu):

pakiet com.GraphHopper.coll; Importuj GNU.Trove.Iterator.Tintiterator; Importuj GNU.Trove.ustawić.haszysz.Tinthashset; Importuj Java.Util.Mapa.Wejście; Importuj Java.Util.Treemap; /*** Kolejka priorytetowa zaimplementowana przez Treemap, aby umożliwić szybką aktualizację klucza. Czy powinniśmy użyć standardowego * b-drzewa? */ Klasa publiczna mysortedCollection < private int size; private int slidingMeanValue = 20; private TreeMapmap; public MySortedCollection(int size) < map = new TreeMap(); > void usuń (klucz int, wartość int) < TIntHashSet set = map.get(value); if (set == null || !set.remove(key)) throw new IllegalStateException("cannot remove key " + key + " with value " + value + " - did you insert " + key + "," + value + " before?"); size--; if (set.isEmpty()) map.remove(value); >aktualizacja publiczna void (klucz, int oldValue, int value) < remove(key, oldValue); insert(key, value); >public void insert (klucz, wartość int) < TIntHashSet set = map.get(value); if (set == null) map.put(value, set = new TIntHashSet(slidingMeanValue)); // else // slidingMeanValue = Math.max(5, (slidingMeanValue + set.size()) / 2); if (!set.add(key)) throw new IllegalStateException("use update if you want to update " + key); size++; >public int peekValue () < if (size == 0) throw new IllegalStateException("collection is already empty!?"); Entrye = map.firstEntry(); if (e.getValue().isEmpty()) throw new IllegalStateException("internal set is already empty!?"); return map.firstEntry().getKey(); > public int Peekkey () < if (size == 0) throw new IllegalStateException("collection is already empty!?"); TIntHashSet set = map.firstEntry().getValue(); if (set.isEmpty()) throw new IllegalStateException("internal set is already empty!?"); return set.iterator().next(); >public int Polkey () < size--; if (size < 0) throw new IllegalStateException("collection is already empty!?"); Entrye = map.firstEntry(); TIntHashSet set = e.getValue(); TIntIterator iter = set.iterator(); if (set.isEmpty()) throw new IllegalStateException("internal set is already empty!?"); int val = iter.next(); iter.remove(); if (set.isEmpty()) map.remove(e.getKey()); return val; > public int size () < return size; >Public Boolean IsEmpty () < return size == 0; >public int GetLidingMeanValue () < return slidingMeanValue; >@Override Public String ToString () < return "size " + size + " min=(" + peekKey() + "=>" + peekValue () +") "; >> 

Posortowana kolekcja, która pozwala duplikatom?

Wyślij ciasta

Wysłano 13 lat temu

Liczba plasterków do wysłania:

Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • Po krótkiej sesji rozwiązywania problemów, podczas której nie mogłem zrozumieć, dlaczego moje w moich oczach uporządkowały priorytetowe, które wypluli swoje elementy w nieporadowany sposób, czytałem Javadoc i zdałem sobie sprawę, że iterator priorytetu może zwrócić elementy w dowolnej kolejności, w której lubi w zasadzie lubi lubi lubi lubi lubi. Innymi słowy, priorytetowo nie można uznać za sortowaną kolekcję. Powodem, dla którego drzewa nie jest opcją, jest to, że potrzebuję kolekcji, aby umożliwić duplikaty. I chcę, żeby zawsze było sortowane, bez użycia kolekcji.sortować().

    Nie zapytam o przyczyny tego zachowania priorytetowego, ponieważ dyskusja tutaj całkiem ładnie obejmuje to. Chcę jednak zapytać, czy istnieją jakieś alternatywy, których nie wiem?

    Podsumowując, potrzebuję kolekcji, która:

    Czy w Java API jest taka kolekcja? Czy moje wymagania są zbyt daleko idące? Wszelkie sugestie dotyczące najlepszego i najczystszego sposobu rozwiązania tego? A wydajność nie jest dla mnie problemem, ponieważ w sumie kolekcja nigdy nie będzie zawierała więcej niż powiedzmy kilkaset elementów.

    Marszałek

    Posty: 77786

    Wyślij ciasta

    Wysłano 13 lat temu

    Liczba plasterków do wysłania:

    Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • Myślę, że będziesz musiał napisać własne. To, co opisujesz, to lista, która przyjmuje naturalne zamawianie, a nie zamówienie wstawienia jako jej zamawianie. Napisz opakowanie wokół implementacji listy; Użyj wyszukiwania binarnego, aby znaleźć punkt wstawiania w metodzie Add (e) i wyrzuć anunsupportedoperationException z metody add (int, e). Uwaga Twoja klasa opakowania będzie musiała zaimplementować listę interfejs też. Metoda Add (E) będzie działać w dziennikuN czas w najlepszym.

    Szeryf

    Posty: 22739

    Chrom

    Wyślij ciasta

    Wysłano 13 lat temu

    Liczba plasterków do wysłania:

    Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • Campbell Ritchie napisał: i rzucaj anunsupportedoperationException z metody add (int, e). Zwróć uwagę na klasę opakowania będzie musiała również zaimplementować interfejs listy.

    Klasa opakowania nie musi wdrażać listy; Zamiast tego wdrażaj kolekcję. Lista dodaje trzy rzeczy, których kolekcja nie ma:
    1) określone zamówienie
    2) Indeksowanie elementów
    3) Przeniesienie zarówno do przodu, jak i do tyłu z listą

    Ponieważ prawdopodobnie nie będziesz potrzebować 2 lub 3, opakowanie musi tylko wdrożyć kolekcję. Jeśli wdrażasz listę, utrudniacie sobie, ponieważ dodaj (int, e) nie jest jedynym miejscem, w którym możesz przerwać sortowane zamówienie:
    – Addall (INT, kolekcja) pozwala również na dodanie w dowolnym miejscu (kolejne UnsupportedoperationException)
    – SET (INT) umożliwia zastąpienie elementu dowolnym innym elementem (inny UnsupportedoperationException)
    – Musisz również chronić listę zwróconą przez Sublist (możesz to owinąć w nowej instancji opakowania)
    – Musisz chronić swojego listiteratora, pozwala to również na dodanie i wymianę elementów (potrzebujesz innej klasy opakowania)

    A co daje lista, której możesz chcieć? get (int), indexof (obiekt), lastIndexof (obiekt), sublist (int, int). Ale czy naprawdę ich potrzebujesz? Kolekcja ich nie ma, zestaw ich nie ma (priorytet) kolejka ich nie ma.

    SCJP 1.4 – SCJP 6 – SCWCD 5 – Oceejbd 6 – OceJpad 6
    Jak zadawać pytania, jak odpowiedzieć na pytania

    Jimi Svedenholm

    Ranch Hand

    Wyślij ciasta

    Wysłano 13 lat temu

    Liczba plasterków do wysłania:

    Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • OK, myślałem więcej i mam kilka opcji do wyboru:

    Opcja 3 była moją pierwszą myślą, ponieważ moim zdaniem powinno to być dość łatwe. Ale okazało się, że w rzeczywistości nie było to takie łatwe. Próbuję sortować obiekty implementujące interfejs org.SpringFramework.rdzeń.Zamówiono. Istnieje już komparator dla uporządkowanych przedmiotów, jednak jeśli numer zamówienia obu obiektów jest taki sam, komparator po prostu zwraca 0. Ale chcę, żeby zwrócił 0, jeśli obiekty naprawdę są równe. Ponieważ będą zamówione obiekty, które są dalekie od równych, ale z tym samym numerem zamówienia. Jeśli komparator zwróci 0, wówczas drzewa uważa te obiekty za równe.

    Problemem jest zdecydowanie, czy element E1 powinien być uważany za mniej niż więcej niż więcej niż element E2, gdy E1.getOrder () == e2.getOrder (). To, co zrobiłem teraz, podczas implementacji testowej, to:

    Nie mam problemu z nieco złożonymi krokami, ponieważ rzadko sprowadza się to do E lub Ferming Good Down Hashcode. Problem, który mam, dotyczy ostatniego kroku, F. Ponieważ łamie umowę porównywalnego. Jeśli Porównaj (E1, E2) sprowadza się do F, wynik wynosi -1, ale wynik porównywania (E2, E1) jest * również * -1! Nawet jeśli to się nie stanie, może * może * zdarzyć się.

    Co myślicie o tym komparatorze? Kiedy to napisałem, wydawało mi się &bdquo;po prostu źle&rdquo;.SpringFramework.rdzeń.OrderComparator jest zapisywany, ponieważ może rozważyć obiekty nierówne (jak według O1.równa się (O2)), aby być równe (przez zwracanie 0). Lub, kiedy o tym myślę, mój * prawdziwy * PEVE jest interfejsem ustawionym, który wyraźnie stwierdza, że ​​uważa obiekty jako równe, jeśli porównanie/kompleks powoduje 0. To, co powinno zrobić, jeśli mnie poprosisz, to wykonanie kolejnego połączenia O1.równa się (O2) i uważa je za duplikatów, jeśli zwróci prawdę.

    Ale ponieważ wdrożenie setów nie zmienią się w najbliższym czasie (lub wcale) w tym względzie, zaczynam pochylać się do opcji 2 powyżej, ponieważ jest to prostsze niż opcja 1 i czystsza, a następnie opcja 3.

    Campbell Ritchie

    Marszałek

    Posty: 77786

    Wyślij ciasta

    Wysłano 13 lat temu

    Liczba plasterków do wysłania:

    Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • Komparator zgodny z Equals to dobry pomysł, ale jeśli użyjesz go z drzewami, nie dostaniesz żadnych duplikatów.

    Jimi Svedenholm

    Ranch Hand

    Wyślij ciasta

    Wysłano 13 lat temu

    Liczba plasterków do wysłania:

    Opcjonalna nota &bdquo;dziękuję&rdquo;:

  • Zgłoś post do moderatora
  • Campbell Ritchie napisał: Komparator zgodny z Equals to dobry pomysł, ale jeśli użyjesz go z drzewami, nie dostaniesz żadnych duplikatów.

    Cóż, istnieją tutaj dwa różne rodzaje równości/duplicy*. Komparator rozważa dwa elementy równe, jeśli &bdquo;porównanie-analkulacja&rdquo; powoduje 0. I to jest najwyraźniej jedyne sprawdzanie równomiernych. Ale sposób, w jaki to widzę, ta wąska definicja równych jest nieodpowiednia. Obiekty są &bdquo;równe&rdquo; tylko w oczach komparatora, ale sortowani powinien używać tylko komparatora dla sortowanie, nie kontrole dubliczności. Jeśli dwa elementy mają &bdquo;result compreeto&rdquo; wynoszący 0, ale gdzie równa () zwraca false, to po prostu uważa to za &bdquo;nie powiela się, ale porządek jest nieistotny&rdquo;.

    Ale może ktoś może wyjaśnić przyczynę tej wadliwej funkcji sortowanej? Dlaczego ufa porównanie/porównanie w odniesieniu do sprawdzania dubliczności bez robienia właściwy equals () sprawdź? Przeczytałem Javadoc, ale tylko mówi, że w ten sposób jest wdrażany. Wydajność?

    Aby wrócić do mojego oryginalnego postu. Kiedy mówiłem o duplikatach, miałem na myśli duplikaty zgodnie z punktu widzenia komparatory. Nie mam powodu, aby umieścić PRAWDA duplikaty (tj. gdzie O1.równa się (O2) w kolekcji.

    Rozwiązaniem, do którego się teraz pochylam, jest stworzenie własnej kolekcji (tj. &bdquo;Wprowadzenie kolekcji&rdquo;), która ma wewnętrzną listy tablicy. Ta kolekcja po prostu przekazuje wszystkie wywołania metody arraylist, ale zanim nazywane są metody toaRray i iterator. Bonusowym wynikiem tego w porównaniu z powyższym &bdquo;opcją 3&rdquo; jest to, że to rozwiązanie nie ma problemu z zmiennymi elementami, w których pola, które są używane do porównania, mogą się zmienić po dodaniu do kolekcji. SortEdset prawdopodobnie nie byłby w stanie elegancko poradzić sobie z tym scenariuszem.

    Wszelkie komentarze do tego rozwiązania?

    * Trzy, jeśli weźmiesz pod uwagę &bdquo;==&rdquo;, ale to tylko szczególny przypadek Equals ().

    Jak pozwolić duplikatom

    Возожно, ареса электроннy почты являюczeń анонимныи для этой групыы и POŁĄCZ вам т н н на н на н н н на н н н на н н н на н н нат н нат н н на н нат н на н на н на н н н на нат н н н н н н н н н н н н н н н н н н н н н н н н н н ектроной почты е частников, чтобы увидеть исходное собщениеS.

    Zestawy posortowane w Redis nie pozwoliły na duplikaty. Czy możemy pozwolić duplikatom w sortowanych zestawach ?


    Pozdrowienia,
    Manula Thantriwatte .
    Licencjat | University of Colombo School of Computing
    Sri Lanka

    Demis Bellot

    не прочитано,

    23 lutego. 2011 г., 09:28:47 23.02.2011

    Написать собщение автору

    Чтобы ответить автору, войдите в систем

    Чтобы fot

    У нет разрешения на удаление собщений в этой групе.

    Пожаловаться на собщение

    Чтобы пожаловаться на собщение, войдите в системему

    Показать исходное собщение

    Возожно, ареса электроннy почты являюczeń анонимныи для этой групыы и POŁĄCZ вам т н н на н на н н н на н н н на н н н на н н нат н нат н н на н нат н на н на н на н н н на нат н н н н н н н н н н н н н н н н н н н н н н н н н н ектроной почты е частников, чтобы увидеть исходное собщениеS.

    – Redi. @GoogleGroups.com, Manela niż

    Czy na pewno nie chcesz korzystać z listy? Jako zestaw z definicji nie zawiera duplikatów.


    Otrzymałeś tę wiadomość, ponieważ jesteś subskrybowany do grupy &bdquo;Redis DB&rdquo; Google Group.
    Aby opublikować do tej grupy, wyślij e -mail do Redi. @GoogleGroups.com.
    Aby zrezygnować z subskrypcji z tej grupy, wyślij e-mail do Redis-DB+U. @GoogleGroups.com.
    Aby uzyskać więcej opcji, odwiedź tę grupę pod adresem http: //.Google.COM/Group/Redis-DB?hl = en.

    Didier Spezia

    не прочитано,

    23 lutego. 2011 г., 10:18:24 23.02.2011

    Написать собщение автору

    Чтобы ответить автору, войдите в систем

    Чтобы fot

    У нет разрешения на удаление собщений в этой групе.

    Пожаловаться на собщение

    Чтобы пожаловаться на собщение, войдите в системему

    Показать исходное собщение

    Возожно, ареса электроннy почты являюczeń анонимныи для этой групыы и POŁĄCZ вам т н н на н на н н н на н н н на н н н на н н нат н нат н н на н нат н на н на н на н н н на нат н н н н н н н н н н н н н н н н н н н н н н н н н н ектроной почты е частников, чтобы увидеть исходное собщениеS.

    Jeśli próbujesz zbudować uporządkowane, nie unikalne indeksowanie
    struktura danych i naprawdę utknęła w Redis, możesz
    Chcesz rzucić okiem na bazę danych Alchemii Jak Sprats.

    Pozostaje w większości kompatybilny z Redis, ale może pasować
    potrzebuje lepiej ze względu na wsparcie dla indeksy BTREE w pamięci.

    Jeśli musisz o tym omówić, skorzystaj z
    Dedykowana grupa.

    23 Fév, 09:25, Manela niż
    napisał:

    Will Maier

    не прочитано,

    23 lutego. 2011 г., 12:27:05 23.02.2011

    Написать собщение автору

    Чтобы ответить автору, войдите в систем

    Чтобы fot

    У нет разрешения на удаление собщений в этой групе.

    Пожаловаться на собщение

    Чтобы пожаловаться на собщение, войдите в системему

    Показать исходное собщение

    Возожно, ареса электроннy почты являюczeń анонимныи для этой групыы и POŁĄCZ вам т н н на н на н н н на н н н на н н н на н н нат н нат н н на н нат н на н на н на н н н на нат н н н н н н н н н н н н н н н н н н н н н н н н н н ектроной почты е частников, чтобы увидеть исходное собщениеS.

    – Redi. @GoogleGroups.com

    W środę, 23 lutego 2011 o 01:55:16 PM +0530, Manela Thhtriwatte napisała:
    > Zestawy posortowane w Redis nie pozwoliły na duplikaty. Czy możemy pozwolić duplikatom w
    > Zestawy posortowane ?

    Zwykła sztuczka obejmuje komponowanie wartości w zestawie za pomocą wyniku. Na czas
    Dane seryjne, w których wynik jest znacznikiem czasu, a wartość jest liczbą, to
    powinno wystarczyć, aby zachować unikalność potencjalnie powtarzających się wartości.
    Np:

    Czas Zadd.seria 1298460338 “1298460348 9”
    Czas Zadd.seria 1298460348 “1298460348 10”
    Czas Zadd.seria 1298460358 “1298460358 11”

    Twój klient musiałby wtedy podzielić wartości, które otrzymuje od Redis w kolejności
    Aby uzyskać rzeczywistą wartość.