{"id":13302,"date":"2017-11-08T11:08:10","date_gmt":"2017-11-08T10:08:10","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=13302"},"modified":"2017-11-08T11:08:10","modified_gmt":"2017-11-08T10:08:10","slug":"java-9-metodi-factory-per-collection-e-mappe","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/java-9-metodi-factory-per-collection-e-mappe\/","title":{"rendered":"Java 9, metodi Factory per Collection e mappe"},"content":{"rendered":"<p>Tra le novit\u00e0 introdotte da <a href=\"http:\/\/www.devapp.it\/wordpress\/java9-le-novita\/\" target=\"_blank\" rel=\"noopener\">Java 9<\/a>, esiste il metodo <em>of()<\/em> incluso nelle interfacce List, Set e Map per la <strong>creazione di strutture dati immutabili<\/strong>. Tale possibilit\u00e0 esisteva anche nelle edizioni precedenti del linguaggio ma non vi era alcuno strumento diretto allo scopo.<\/p>\n<p>Si potevano usare alcuni metodi presenti nella classe <em>Collections<\/em> come:<\/p>\n<ul>\n<li><em>unmodifiableList(List&lt;? extends T&gt; list)<\/em><\/li>\n<li><em>unmodifiableMap(Map&lt;? extends K,? extends V&gt; m)<\/em><\/li>\n<li><em>unmodifiableSet(Set&lt;? extends T&gt; s)<\/em><\/li>\n<\/ul>\n<p>in grado di produrre una versione immutabile della struttura dati partendo da una preesistente.<\/p>\n<p>A partire da Java 9 si ha la possibilit\u00e0 di creare strutture dati immutabili composte da oggetti singoli forniti in input.<\/p>\n<p>Cos\u00ec potremo ottenere una lista immutabile:<\/p>\n<pre class=\"lang:java decode:true\">List&lt;String&gt; citta= List.of(\"Roma\",\"Torino\", \"Milano\", \"Venezia\", \"Perugia\", \"Bologna\");<\/pre>\n<p>mentre nel seguente modo potremo avere un Set non modificabile:<\/p>\n<pre class=\"lang:java decode:true\">Set&lt;String&gt; nomi = Set.of(\"Elena\", \"Sveva\", \"Marco\", \"Alessia\", \"Simone\");<\/pre>\n<p>Infine il metodo <em>of()<\/em> \u00e8 presente in Map per avere mappe non modificabili:<\/p>\n<pre class=\"lang:java decode:true \">Map&lt;String, Integer&gt; pagella=Map.of(\"Italiano\",8,\"Storia\",6,\"Geografia\", 7, \"Matematica\",8);<\/pre>\n<p>In quest&#8217;ultimo esempio, si noti che gli oggetti elencati sono alternatamente una chiave ed il rispettivo valore.<\/p>\n<p>Con strutture simili, si potr\u00e0 svolgere qualsiasi operazione purch\u00e9 non si tenti di modificarne la composizione. Viceversa, sar\u00e0 possibile modificare il contenuto dei singoli oggetti facendo loro accesso.<\/p>\n<p>Seguiteci e vi faremo scoprire altre grandi novit\u00e0 di Java 9!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tra le novit\u00e0 introdotte da Java 9, esiste il metodo of() incluso nelle interfacce List, Set e&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13300,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[1932,1526,2028,2026,154,2029],"class_list":["post-13302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-pratici","tag-collections","tag-java","tag-java-development-kit","tag-jdk","tag-map","tag-strutture-dati-immutabili"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=13302"}],"version-history":[{"count":1,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13302\/revisions"}],"predecessor-version":[{"id":13307,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/13302\/revisions\/13307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13300"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=13302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=13302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=13302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}