2011/07/08 12:50
공부
예전 병특시절에 리스트에서 어떤 변수가 몇개나 중복되는지 알기 위하여
List<String> list = getNameList();
Map<String, Integer> map
for ( String str : list)
{
if ( map.exist(str ) ) {
map.insert( str , 1 );
}
else {
map.insert( str, map.get( str ) + 1 );
}
}
(pseodocode)
이런 코드를 많이 만들었던거 같은데... 지금 봐도 좀 어딘가 기분이 안좋은 코든데.
어제 시간이 남아서 검색 하다보니 Multiset 이란게 있더라.
List<String> list = getNameList();
(pseodocode)
이런 코드를 많이 만들었던거 같은데... 지금 봐도 좀 어딘가 기분이 안좋은 코든데.
어제 시간이 남아서 검색 하다보니 Multiset 이란게 있더라.
List<String> list = getNameList();
Multiset<String> multiSet
for ( String str :list )
{
multiSet.add( str );
}
이렇게 바꿀수 있다!. 오오 이 얼마나 간단하고 직관적인가.
Multiset은 결국 Map< Key_Value, Integer > 의 구조라서 위에 구현하고 큰 속도의 차이는 없을 것같지만, 코드의 간결함이 한층 높아지는 구조다.
stl 에는 기본적으로 제공하고, java에는 collection엔 없고 google collection ( = guava ) 에만 존재한다.
apache commons collection 에도 없는게 좀 아깝긴 하다. 보통 이걸 많이 쓸테니...
이렇게 바꿀수 있다!. 오오 이 얼마나 간단하고 직관적인가.
Multiset은 결국 Map< Key_Value, Integer > 의 구조라서 위에 구현하고 큰 속도의 차이는 없을 것같지만, 코드의 간결함이 한층 높아지는 구조다.
stl 에는 기본적으로 제공하고, java에는 collection엔 없고 google collection ( = guava ) 에만 존재한다.
apache commons collection 에도 없는게 좀 아깝긴 하다. 보통 이걸 많이 쓸테니...

