HashSet hermetyzuje operacje, które umożliwiają porównywanie elementów w kolekcjach. HashSets są często używane do określania nakładających się i unikatowych elementów w kolekcji.
HashSet jest oparty na HashMap. Jeśli spojrzymy na HashSet<E>implementację, wszystko jest zarządzane w ramach HashMap<E,Object>. <E>jest używany jako klucz HashMap. I wiemy, że HashMapnie jest to bezpieczne dla wątków. Właśnie dlatego mamy ConcurrentHashMapJavę. Na tej podstawie jestem zdezorientowany, dlaczego nie mamy ConcurrentHashSet, który powinien być oparty na ConcurrentHashMap? Czy coś …
Zawsze kochałem drzewa, takie ładne O(n*log(n))i uporządkowane. Jednak każdy inżynier oprogramowania, którego znałem, spytał mnie wyraźnie, dlaczego miałbym go użyć TreeSet. Z tła CS nie sądzę, żeby miało to tak duże znaczenie, z jakiego korzystasz, i nie dbam o to, aby bawić się funkcjami skrótu i segmentami (w przypadku Java). …
HashSet Struktura danych C # HashSet została wprowadzona w .NET Framework 3.5. Pełna lista zaimplementowanych elementów znajduje się na stronie MSDN HashSet . Gdzie jest używany? Dlaczego chcesz tego używać?
Za pomocą listy możesz: list.AddRange(otherCollection); W HashSet nie ma metody dodawania zakresu . Jaki jest najlepszy sposób na dodanie kolejnej kolekcji do HashSet?
Jak mogę iterować po Set/ HashSetbez następujących elementów? Iterator iter = set.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); }
Poza tym, że HashSet nie zezwala na zduplikowane wartości, jaka jest różnica między HashMapi HashSet? Mam na myśli mądre wdrożenie? Jest to trochę niejasne, ponieważ obie używają tablic mieszających do przechowywania wartości.
Chciałem przechowywać niektóre lokalizacje pikseli bez zezwalania na duplikaty, więc pierwsze co przychodzi mi na myśl to HashSet<Point>lub podobne klasy. Jednak wydaje się to być bardzo powolne w porównaniu do czegoś podobnego HashSet<string>. Na przykład ten kod: HashSet<Point> points = new HashSet<Point>(); using (Bitmap img = new Bitmap(1000, 1000)) { …
Czy możesz wyjaśnić, jaka jest różnica między HashSet<T>i List<T>w .NET? Może mógłbyś wyjaśnić na przykładzie, HashSet<T>przeciwko czemu należy preferować przypadki List<T>?
Jaka jest różnica między nimi? wiem to LinkedHashSet to uporządkowana wersja HashSet, która utrzymuje podwójnie połączoną listę wszystkich elementów. Użyj tej klasy zamiast HashSet, jeśli zależy Ci na kolejności iteracji. Podczas iteracji przez HashSet kolejność jest nieprzewidywalna, podczas gdy LinkedHashSet umożliwia iterację elementów w kolejności, w jakiej zostały wstawione. Ale …
Proszę wziąć pod uwagę poniższy fragment kodu: HashSet hs = new HashSet(); hs.add("hi"); -- (1) hs.add("hi"); -- (2) hs.size()da 1, ponieważ HashSetnie zezwala na duplikaty, więc tylko jeden element zostanie zapisany. Chcę wiedzieć, czy dodajemy zduplikowany element, czy zastępuje on poprzedni element, czy po prostu go nie dodaje? Co się …
Badam ten HashSet<T>typ, ale nie rozumiem, jakie miejsce zajmuje w kolekcjach. Czy można go użyć do zastąpienia List<T>? Wyobrażam sobie, że działanie a HashSet<T>jest lepsze, ale nie widziałem indywidualnego dostępu do jego elementów. Czy to tylko do wyliczenia?
Mam klasę, która jest IComparable: public class a : IComparable { public int Id { get; set; } public string Name { get; set; } public a(int id) { this.Id = id; } public int CompareTo(object obj) { return this.Id.CompareTo(((a)obj).Id); } } Kiedy dodam listę obiektów tej klasy do zestawu …
HashSet<T> t = new HashSet<T>(); // add 10 million items Dictionary<K, V> t = new Dictionary<K, V>(); // add 10 million items. Czyja .Containsmetoda zwróci się szybciej? Dla wyjaśnienia, moim wymaganiem jest to, że mam 10 milionów obiektów (cóż, ciągów znaków), które muszę sprawdzić, czy istnieją w strukturze danych. NIGDY …
Czy istnieje kolekcja w C #, która nie pozwoli Ci dodać do niej zduplikowanych elementów? Na przykład w przypadku głupiej klasy public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public override int GetHashCode() …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.