Commons Collectionsの本命の一つとも思われるのがこのBidiMap(Bidirectional Map)だろう.
キーのみならずバリューでも検索できるのでこれは優れものである.
以下のコードの例はキーで検索して要素を削除,そしてバリューで検索して要素を削除する例を示している.
@Test public void testBidiMap() { BidiMap bidiMap = new TreeBidiMap( initMap() ); assertThat( (String)bidiMap.remove( 4 ), is( "London" ) ); assertThat( ((Integer)bidiMap.removeValue( "NewYork" )).intValue(), is( 1 ) ); assertThat( bidiMap.size(), is( 3 ) ); } private Map<Integer,String> initMap() { Map<Integer,String> m = new HashMap<Integer,String>(); m.put( 1, "NewYork" ); m.put( 2, "Tokyo" ); m.put( 3, "Bangalore" ); m.put( 4, "London" ); m.put( 5, "Paris" ); return m; }
バッグ - データストレージ
オブジェクトのストレージとして使えるバッグ - 使えるのか?
とりあえずサンプルコードを作ってみた.
@Test public void testBag() { Bag bag = new HashBag(); bag.add( 4, 6 ); bag.remove( 4, 3 ); assertThat( bag.getCount( 4 ), is( 3 ) ); Iteratoriter = bag.iterator(); while( iter.hasNext() ) { System.out.println( System.identityHashCode( iter.next() ) ); } }
0 件のコメント:
コメントを投稿