<?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>Comments on: List nebo Iterable?</title>
	<atom:link href="http://blog.krecan.net/2008/03/14/list-nebo-iterable/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/</link>
	<description>Short remarks from Java world</description>
	<lastBuildDate>Wed, 08 Sep 2010 10:08:11 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Adam Hošek</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-462</link>
		<dc:creator>Adam Hošek</dc:creator>
		<pubDate>Wed, 23 Apr 2008 11:11:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-462</guid>
		<description>Ad C++ const: Tohle je opravdu silná fičura jazyka, když jsem o tom tak přemýšlel po přečtení toho článku a komentářů, myslim, že zavedení klíčového slova const by mohl být dobrý zlepšovák. final by si ponechalo původní funkčnost - finální třídy, metody a reference. const by naopak fungovalo skutečně jako ukazatel toho, že daná metoda nesmí měnit instanci a volat non-const metody, const identifikátor by pak řikal, že přes něj nelze volat non-const metody na referencované instanci.

A co kolekce? Jak říct, že chci mít konstantní kolekci referencí, ale stav samotných objektů uvnitř měnit chci - pak by to šlo napsat jako &#039;const Collection c&#039;. Pokud bych chtěl konstantní objekty uvnitř, použil bych naopak &#039;Collection c&#039;. Pokud bych to chtěl zkombinovat na plně konstantní kolekci, napsal bych &#039;const Collection c&#039;. No, možná že je to pře-const-ováno, ale jistě by se to takto dalo použít. Když generiky, tak něco na způsob &#039;const List list&#039;. Jedinou nejednoznačnost vidím u primitivních typů. Tam by klíčová slova final i const měla prakticky identický význam, protože zpětná kompatibilita. Používání const v kolekcích generiky vlastně vyžaduje, jen když nenapíšu konkrétní typ, ale jen const, bude to to samé jako const Object.

V každém případě by nám odpadl problém, jestli použít Collection nebo Iterable/Iterator.

Na druhou stranu - Pokud mi opravdu záleží na tom, jak se pracuje s Listem a Setem, proč neudělat dvě přetížené verze té metody?</description>
		<content:encoded><![CDATA[<p>Ad C++ const: Tohle je opravdu silná fičura jazyka, když jsem o tom tak přemýšlel po přečtení toho článku a komentářů, myslim, že zavedení klíčového slova const by mohl být dobrý zlepšovák. final by si ponechalo původní funkčnost - finální třídy, metody a reference. const by naopak fungovalo skutečně jako ukazatel toho, že daná metoda nesmí měnit instanci a volat non-const metody, const identifikátor by pak řikal, že přes něj nelze volat non-const metody na referencované instanci.</p>
<p>A co kolekce? Jak říct, že chci mít konstantní kolekci referencí, ale stav samotných objektů uvnitř měnit chci - pak by to šlo napsat jako 'const Collection c'. Pokud bych chtěl konstantní objekty uvnitř, použil bych naopak 'Collection c'. Pokud bych to chtěl zkombinovat na plně konstantní kolekci, napsal bych 'const Collection c'. No, možná že je to pře-const-ováno, ale jistě by se to takto dalo použít. Když generiky, tak něco na způsob 'const List list'. Jedinou nejednoznačnost vidím u primitivních typů. Tam by klíčová slova final i const měla prakticky identický význam, protože zpětná kompatibilita. Používání const v kolekcích generiky vlastně vyžaduje, jen když nenapíšu konkrétní typ, ale jen const, bude to to samé jako const Object.</p>
<p>V každém případě by nám odpadl problém, jestli použít Collection nebo Iterable/Iterator.</p>
<p>Na druhou stranu - Pokud mi opravdu záleží na tom, jak se pracuje s Listem a Setem, proč neudělat dvě přetížené verze té metody?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AZOR</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-427</link>
		<dc:creator>AZOR</dc:creator>
		<pubDate>Thu, 03 Apr 2008 12:47:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-427</guid>
		<description>aha, omlouvám se - nedávno jsem nasel neco o SCJP na tomhle blogu snad i. :o)</description>
		<content:encoded><![CDATA[<p>aha, omlouvám se - nedávno jsem nasel neco o SCJP na tomhle blogu snad i. <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AZOR</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-426</link>
		<dc:creator>AZOR</dc:creator>
		<pubDate>Mon, 31 Mar 2008 18:43:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-426</guid>
		<description>Ahoj, muzu mit skoro offtopic dotaz? Nedavno jsem si tu precetl, ze hledas praci v anglii a pochopitelne jsem se podival na CV :o) Nemuzes kdyztak na blog pls napsat neco o javacertifikacich? kde se to da v CR sehnat a nejake zdroje, ze kterych se jde na to pripravit, dekuji.</description>
		<content:encoded><![CDATA[<p>Ahoj, muzu mit skoro offtopic dotaz? Nedavno jsem si tu precetl, ze hledas praci v anglii a pochopitelne jsem se podival na CV <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ) Nemuzes kdyztak na blog pls napsat neco o javacertifikacich? kde se to da v CR sehnat a nejake zdroje, ze kterych se jde na to pripravit, dekuji.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bady</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-422</link>
		<dc:creator>bady</dc:creator>
		<pubDate>Tue, 18 Mar 2008 20:30:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-422</guid>
		<description>finc: to neni to same. C++ rozlisuje const vector *foo a vector const *foo. To druhe zpusobi, ze neni mozne menit __obsah__ vektoru (tj. volat ne-const metody). Final v Jave odpovida te prvni variante.</description>
		<content:encoded><![CDATA[<p>finc: to neni to same. C++ rozlisuje const vector *foo a vector const *foo. To druhe zpusobi, ze neni mozne menit __obsah__ vektoru (tj. volat ne-const metody). Final v Jave odpovida te prvni variante.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: yyy</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-421</link>
		<dc:creator>yyy</dc:creator>
		<pubDate>Tue, 18 Mar 2008 10:35:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-421</guid>
		<description>xxx: +10 ;-)))</description>
		<content:encoded><![CDATA[<p>xxx: +10 <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ))</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xxx</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-420</link>
		<dc:creator>xxx</dc:creator>
		<pubDate>Tue, 18 Mar 2008 09:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-420</guid>
		<description>a nebo pouzit nejvyssiho predka Object :-)</description>
		<content:encoded><![CDATA[<p>a nebo pouzit nejvyssiho predka Object <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ladislav Thon</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-418</link>
		<dc:creator>Ladislav Thon</dc:creator>
		<pubDate>Mon, 17 Mar 2008 08:24:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-418</guid>
		<description>koalix: no jasně, to jsem samozřejmě v háji -- když nevím, co dělám :-)</description>
		<content:encoded><![CDATA[<p>koalix: no jasně, to jsem samozřejmě v háji -- když nevím, co dělám <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: podlesh</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-417</link>
		<dc:creator>podlesh</dc:creator>
		<pubDate>Mon, 17 Mar 2008 07:16:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-417</guid>
		<description>Rozhodne collection. List jen v pripadech kdy to skutecne musi byt list; jinak diskvalifikuje mnoziny (HashSet, TreeSet, Map.keySet) ci dokonce obecne kolekce (Map.values).

Iterable jen pokud jsou hodnoty generovany postupne (napriklad wrapper okolo ResultSet, nebo prod dat ze site) a neni tedy predem znama velikost; jinak ma jen same nevyhody oproti Collection.

Neco jineho by bylo, pokud by pole automaticky implementovala Iterable (kdyz uz na ne lze pouzit for cyklus). Bez teto feature je Iterable jen takovy &quot;druhorady obcan&quot;.</description>
		<content:encoded><![CDATA[<p>Rozhodne collection. List jen v pripadech kdy to skutecne musi byt list; jinak diskvalifikuje mnoziny (HashSet, TreeSet, Map.keySet) ci dokonce obecne kolekce (Map.values).</p>
<p>Iterable jen pokud jsou hodnoty generovany postupne (napriklad wrapper okolo ResultSet, nebo prod dat ze site) a neni tedy predem znama velikost; jinak ma jen same nevyhody oproti Collection.</p>
<p>Neco jineho by bylo, pokud by pole automaticky implementovala Iterable (kdyz uz na ne lze pouzit for cyklus). Bez teto feature je Iterable jen takovy "druhorady obcan".</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: koalix</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-416</link>
		<dc:creator>koalix</dc:creator>
		<pubDate>Mon, 17 Mar 2008 07:00:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-416</guid>
		<description>&gt; Zjistit velikost Iterable není problém, prostě ho celý proiterovat.

aneb:

&gt; Tenhle příklad má ještě jednu zajímavou vlastnost: s použitím &gt; Iterable/Iterator můžu metodě předat i nekonečnou posloupnost


A pockat az do smrti - serveru nebo vasi ;)</description>
		<content:encoded><![CDATA[<p>&gt; Zjistit velikost Iterable není problém, prostě ho celý proiterovat.</p>
<p>aneb:</p>
<p>&gt; Tenhle příklad má ještě jednu zajímavou vlastnost: s použitím &gt; Iterable/Iterator můžu metodě předat i nekonečnou posloupnost</p>
<p>A pockat az do smrti - serveru nebo vasi <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ladislav Thon</title>
		<link>http://blog.krecan.net/2008/03/14/list-nebo-iterable/comment-page-1/#comment-415</link>
		<dc:creator>Ladislav Thon</dc:creator>
		<pubDate>Sun, 16 Mar 2008 22:31:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.krecan.net/2008/03/14/list-nebo-iterable/#comment-415</guid>
		<description>Zjistit velikost Iterable není problém, prostě ho celý proiterovat :-) Pomocná metoda může jako triviální optimalizaci provést test, zda objekt implementuje Collection, a případně zavolat jeho metodu size.</description>
		<content:encoded><![CDATA[<p>Zjistit velikost Iterable není problém, prostě ho celý proiterovat <img src='http://blog.krecan.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Pomocná metoda může jako triviální optimalizaci provést test, zda objekt implementuje Collection, a případně zavolat jeho metodu size.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
