<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Komentarze do: Pytania rekrutacyjne &#8211; Jak działa HashMapa w Javie?	</title>
	<atom:link href="https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/feed/" rel="self" type="application/rss+xml" />
	<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/</link>
	<description>Blog o programowaniu w Javie</description>
	<lastBuildDate>Fri, 04 Aug 2023 17:07:08 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>
		Autor: Marek		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-236</link>

		<dc:creator><![CDATA[Marek]]></dc:creator>
		<pubDate>Tue, 29 Oct 2019 09:32:42 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-236</guid>

					<description><![CDATA[Fajnie napisane, dużo przydatnych informacji ;)]]></description>
			<content:encoded><![CDATA[<p>Fajnie napisane, dużo przydatnych informacji 😉</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: K_		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-230</link>

		<dc:creator><![CDATA[K_]]></dc:creator>
		<pubDate>Fri, 25 Oct 2019 10:28:22 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-230</guid>

					<description><![CDATA[Fajny post, sporo rzeczy się dowiedziałem :)]]></description>
			<content:encoded><![CDATA[<p>Fajny post, sporo rzeczy się dowiedziałem 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-225</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 13:25:23 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-225</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-223&quot;&gt;Kamil&lt;/a&gt;.

Dzięki za komentarz Kamil. Oczywiście można mieć zastrzeżenia co do wygenerowanego kodu. Idea daje kilka możliwości jego generacji i żadna nie jest idealna. Ale tak to już jest z generowanym kodem, że generujesz by zaoszczędzić czas. I oczywiście można go poprawiać, ale wtedy trochę przestaje mieć sens jego generacja. Wszystko zależy od ciebie. Jak ci się nie podoba (albo w twoim zespole nie jest akceptowalny taki kod), to możesz pisać ręcznie. Wiele razy właśnie tak musiałem robić.

&quot;Czy pola myAge, myName nie mogłyby być final? Czy klasa musi być publiczna?&quot;
Tak mogłyby być, a nawet powinny.

Co do Lomboka to napisałem kiedyś art. &lt;a href=&quot;https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/&quot;&gt;Lombok dobre i słabe strony&lt;/a&gt;
Tak &lt;code&gt;@EqualsAndHashCode&lt;/code&gt; generuje taki kod, ale go nie widać, więc oczy nie bolą. W tym przykładzie wygenerowałem kod z Ideii, tak by to było zrozumiałe dla wszystkich.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-223">Kamil</a>.</p>
<p>Dzięki za komentarz Kamil. Oczywiście można mieć zastrzeżenia co do wygenerowanego kodu. Idea daje kilka możliwości jego generacji i żadna nie jest idealna. Ale tak to już jest z generowanym kodem, że generujesz by zaoszczędzić czas. I oczywiście można go poprawiać, ale wtedy trochę przestaje mieć sens jego generacja. Wszystko zależy od ciebie. Jak ci się nie podoba (albo w twoim zespole nie jest akceptowalny taki kod), to możesz pisać ręcznie. Wiele razy właśnie tak musiałem robić.</p>
<p>&#8222;Czy pola myAge, myName nie mogłyby być final? Czy klasa musi być publiczna?&#8221;<br />
Tak mogłyby być, a nawet powinny.</p>
<p>Co do Lomboka to napisałem kiedyś art. <a href="https://nullpointerexception.pl/lombok-dobre-i-slabe-strony/">Lombok dobre i słabe strony</a><br />
Tak <code>@EqualsAndHashCode</code> generuje taki kod, ale go nie widać, więc oczy nie bolą. W tym przykładzie wygenerowałem kod z Ideii, tak by to było zrozumiałe dla wszystkich.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-224</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 13:01:34 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-224</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-218&quot;&gt;Dawid&lt;/a&gt;.

Dawid, dzięki za komentarz. Masz racje warto o tym wspomnieć. W wolnym czasie zaktualizuję artykuł.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-218">Dawid</a>.</p>
<p>Dawid, dzięki za komentarz. Masz racje warto o tym wspomnieć. W wolnym czasie zaktualizuję artykuł.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Kamil		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-223</link>

		<dc:creator><![CDATA[Kamil]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 08:03:37 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-223</guid>

					<description><![CDATA[Cześć,

fajny artykuł w większości wyczerpuję temat.
„Tutaj implementacja została wygenerowana za pomocą środowiska Intellij Idea”
Czy nie masz zastrzeżeń do tego kodu?
Czy pola myAge, myName nie mogłyby być final? Czy klasa musi być publiczna?

Dodam, że jak ktoś stosuje lomboka to jest tam adnotacja @EqualsAndHashCode
która wygeneruje taki kod:
&lt;pre&gt;
&lt;code&gt;public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof MyKey)) return false;
        final MyKey other = (MyKey) o;
        final Object this$myName = this.getMyName();
        final Object other$myName = other.getMyName();
        if (this$myName == null ? other$myName != null : !this$myName.equals(other$myName)) return false;
        if (this.getMyAge() != other.getMyAge()) return false;
        return true;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $myName = this.getMyName();
        result = result * PRIME + ($myName == null ? 43 : $myName.hashCode());
        result = result * PRIME + this.getMyAge();
        return result;
    }
&lt;/code&gt;&lt;/pre&gt;
Być może przydałoby się zastanowić jakie są korzyści ze stosowania lomboka zamiast tamtego kodu? Czym te fragmenty kody się różnią? Taki pomysł – być może na Twój następny artykuł ?]]></description>
			<content:encoded><![CDATA[<p>Cześć,</p>
<p>fajny artykuł w większości wyczerpuję temat.<br />
„Tutaj implementacja została wygenerowana za pomocą środowiska Intellij Idea”<br />
Czy nie masz zastrzeżeń do tego kodu?<br />
Czy pola myAge, myName nie mogłyby być final? Czy klasa musi być publiczna?</p>
<p>Dodam, że jak ktoś stosuje lomboka to jest tam adnotacja @EqualsAndHashCode<br />
która wygeneruje taki kod:</p>
<pre>
<code>public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof MyKey)) return false;
        final MyKey other = (MyKey) o;
        final Object this$myName = this.getMyName();
        final Object other$myName = other.getMyName();
        if (this$myName == null ? other$myName != null : !this$myName.equals(other$myName)) return false;
        if (this.getMyAge() != other.getMyAge()) return false;
        return true;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $myName = this.getMyName();
        result = result * PRIME + ($myName == null ? 43 : $myName.hashCode());
        result = result * PRIME + this.getMyAge();
        return result;
    }
</code></pre>
<p>Być może przydałoby się zastanowić jakie są korzyści ze stosowania lomboka zamiast tamtego kodu? Czym te fragmenty kody się różnią? Taki pomysł – być może na Twój następny artykuł ?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Dawid		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-218</link>

		<dc:creator><![CDATA[Dawid]]></dc:creator>
		<pubDate>Sun, 20 Oct 2019 22:23:43 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-218</guid>

					<description><![CDATA[Hej Mateusz! Och, ile razy już słyszałem to pytanie:) Także zgadzam się, że warto jeszcze raz sobie przypomnieć odpowiedź:) Tekst bardzo dobry. IMHO, dobrze byłoby wspomnieć jeszcze o drzewie czerwono-czarnym w optymalizacji JDK8 i dlaczego warto, by obiekty implementowały Comparable (co by rzeczywiście było log(n)). Pozdro!]]></description>
			<content:encoded><![CDATA[<p>Hej Mateusz! Och, ile razy już słyszałem to pytanie:) Także zgadzam się, że warto jeszcze raz sobie przypomnieć odpowiedź:) Tekst bardzo dobry. IMHO, dobrze byłoby wspomnieć jeszcze o drzewie czerwono-czarnym w optymalizacji JDK8 i dlaczego warto, by obiekty implementowały Comparable (co by rzeczywiście było log(n)). Pozdro!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-209</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Thu, 17 Oct 2019 08:43:26 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-209</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-208&quot;&gt;Jedrzej&lt;/a&gt;.

Dzięki za komentarz Jedrzej. Ok, poprawiłem trochę definicję. Z samego artykułu wynika, że nie zawsze jest O(1), więc założyłem (błędnie), że dla wszystkich będzie to jasne.]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-208">Jedrzej</a>.</p>
<p>Dzięki za komentarz Jedrzej. Ok, poprawiłem trochę definicję. Z samego artykułu wynika, że nie zawsze jest O(1), więc założyłem (błędnie), że dla wszystkich będzie to jasne.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Jedrzej		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-208</link>

		<dc:creator><![CDATA[Jedrzej]]></dc:creator>
		<pubDate>Thu, 17 Oct 2019 08:03:20 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-208</guid>

					<description><![CDATA[Cześć. Fajny tekst, jedna rzecz mi tylko przeszkadza. Definicja HashMapy może wprowadzać w błąd. Jak sam podajesz w przypadku kolizji zwiększa się zlożoność z O(1) do max O(log n). Czytając artykuł od początku, po definicji miałem takie „oj oj nie do końca się z nią zgadzam”. Oczywiście dalej tłumaczysz przypadek kolizji,  ale może możnaby dodać jakiś mały komentarz w stylu „najczęściej O(1)” albo „w ogólnym przypadku” żeby zasygnalizować wyjątki. 
Pozdrawiam!]]></description>
			<content:encoded><![CDATA[<p>Cześć. Fajny tekst, jedna rzecz mi tylko przeszkadza. Definicja HashMapy może wprowadzać w błąd. Jak sam podajesz w przypadku kolizji zwiększa się zlożoność z O(1) do max O(log n). Czytając artykuł od początku, po definicji miałem takie „oj oj nie do końca się z nią zgadzam”. Oczywiście dalej tłumaczysz przypadek kolizji,  ale może możnaby dodać jakiś mały komentarz w stylu „najczęściej O(1)” albo „w ogólnym przypadku” żeby zasygnalizować wyjątki.<br />
Pozdrawiam!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Jaro		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-207</link>

		<dc:creator><![CDATA[Jaro]]></dc:creator>
		<pubDate>Wed, 16 Oct 2019 20:48:24 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-207</guid>

					<description><![CDATA[Bardzo fajny wpis, będę śledził :)]]></description>
			<content:encoded><![CDATA[<p>Bardzo fajny wpis, będę śledził 🙂</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Autor: Mateusz Dąbrowski		</title>
		<link>https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-206</link>

		<dc:creator><![CDATA[Mateusz Dąbrowski]]></dc:creator>
		<pubDate>Wed, 16 Oct 2019 17:51:27 +0000</pubDate>
		<guid isPermaLink="false">http://nullpointerexception.pl/?p=409#comment-206</guid>

					<description><![CDATA[W odpowiedzi do &lt;a href=&quot;https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-205&quot;&gt;Stanislaw&lt;/a&gt;.

Dzięki za komentarz. Poprawiłem trochę, dodałem też linka do dokumentacji z oryginalnym kontraktem ;)]]></description>
			<content:encoded><![CDATA[<p>W odpowiedzi do <a href="https://nullpointerexception.pl/pytania-rekrutacyjne-jak-dziala-hashmapa-w-javie/#comment-205">Stanislaw</a>.</p>
<p>Dzięki za komentarz. Poprawiłem trochę, dodałem też linka do dokumentacji z oryginalnym kontraktem 😉</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
