Dictionary C# vs. HashMap Java

0

Cześć,

Szybkie pytanie.

W Javie w HashMap nadpisuje metody equals i hashcode by nie wpisywać duplikatów key do hashmapy. Następnie wrzucam ich ogromną ilość to hashmapy [put] to pomija mi duplikaty i wprowadza kolejną parę. w C# wywala mi exception. W jaki sposób mogę to zautomatyzować? Chce, żeby pomijał mi duplikat i dodawał następną pare do dictionary.

1

Mozesz spróbować tak.

        public static class MyClass
        {
            public static bool TryAdd<Tkey, Tvalue>(this Dictionary<Tkey, Tvalue> dictionary, Tkey key, Tvalue value)
            {
                if (dictionary != null && !dictionary.ContainsKey(key))
                {
                    dictionary.Add(key, value);
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
0
topik92 napisał(a):

Mozesz spróbować tak.

        public static class MyClass
        {
            public static bool TryAdd<Tkey, Tvalue>(this Dictionary<Tkey, Tvalue> dictionary, Tkey key, Tvalue value)
            {
                if (dictionary != null && dictionary.ContainsKey(key))
                {
                    dictionary.Add(key, value);
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }

Mała poprawka i działa if (!(dictionary != null && dictionary.ContainsKey(key)))
Dzięki. Chodź w Javie nie ma potrzeby tworzenia dodatkowej metody :)

1

Przecież jest w c# taka kolekcja jak Hashset. Ona nie rzuca wyjatkiem.
https://msdn.microsoft.com/pl-pl/library/bb353005(v=vs.110).aspx

0
error91 napisał(a):

Przecież jest w c# taka kolekcja jak Hashset. Ona nie rzuca wyjatkiem.
https://msdn.microsoft.com/pl-pl/library/bb353005(v=vs.110).aspx

Wiem w Javie też. Tylko potrzebuje ja potrzebuje by kluczem był mi obiekt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1