🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153416

Re: Taka kolekcja/kontener: Vector i Map

#153416
From: Arivald
Date: Sat, 05 May 2012 09:15
38 lines
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-mail
References: <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