Article View: pl.comp.lang.java
Article #153416Re: Taka kolekcja/kontener: Vector i Map
From: Arivald
Date: Sat, 05 May 2012 09:15
Date: Sat, 05 May 2012 09:15
38 lines
2504 bytes
2504 bytes
W dniu 2012-05-05 10:50, Jacek Czerwinski pisze: > W dniu 2012-05-05 09:27, Jacek Czerwinski pisze: > >> Gdyby oprzeć to o Map, dostęp po indeksie by musiał być w kolejności >> dodawania (więc nie hash, alfabetycznie itd) plus mozliwość rozsuwania. >> >> Pewnie że da się to napisać, tylko po co. > > Zrobiłem sobie na kolanie > MapWithBenefits<T> extends HashMap<String, T> > z prywatną listą dla drugiej funkcjonalności > > mentalnie pożegnałem się z inteligentnym put(T) i będzie put(String,T) > > zastanawiam się, jak w tym "wiekopomnym" kodzie wyeliminować API > ujawniające przypadkową dla mnie kolejność z oryginalnego Map (putAll, > entrySet ). W C++ bym obniżył dostępność do private i by było. > Utwórz nowy obiekt, implementujący Map<String, T> i List<T>. Wewnątrz umieść prywatne Map i List, dowolnych typów (np HashMap i LinkedList). Eclipse Ci wygeneruje listę metod do zaimplementowania, po prostu wydeleguj implementację do Mapy i Listy, pilnując wewnętrznych zależności. Po prostu ten sam obiekt (referencję do niego) trzymaj jednocześnie w Liście i Mapie. > mentalnie pożegnałem się z inteligentnym put(T) i będzie put(String,T) To możesz załatwić wzorcem strategii, tzn dodatkowy obiekt (może być singleton czy statyczne klasa), który dostaje obiekt T i zwraca string który będzie kluczem mapy. Strategia może być jako typ generyka (ListMap<T, , Strategy>). -- Arivald
Technical Details
Message-ID:
<jo2r85$pl5$1@news.dialog.net.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mailReferences:
<jo2kpg$jrp$1@node2.news.atman.pl> <jo2pjs$onr$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail From: Arivald <NOSPAMarivald@interia.pl> Newsgroups: pl.comp.lang.java Subject: Re: Taka kolekcja/kontener: Vector i Map Date: Sat, 05 May 2012 11:15:05 +0200 Organization: Dialog Net Lines: 38 Message-ID: <jo2r85$pl5$1@news.dialog.net.pl> References: <jo2kpg$jrp$1@node2.news.atman.pl> <jo2pjs$onr$1@node2.news.atman.pl> NNTP-Posting-Host: dynamic-87-105-245-183.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1336209477 26277 87.105.245.183 (5 May 2012 09:17:57 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Sat, 5 May 2012 09:17:57 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20120425 Thunderbird/13.0 In-Reply-To: <jo2pjs$onr$1@node2.news.atman.pl> X-Antivirus: avast! (VPS 120504-1, 2012-05-04), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit