hogepiyo

かつてはマイクラのModを作っていたがひざに矢を受けた

拡張for文とGuavaのCollection

拡張for文

拡張for文はIteratableなものに使える便利なfor文. Moddingでよく使うList, Set, Map全て拡張for文で書ける.

ListやSetはこのように

for (T var : list)
{
    // varで各要素を参照できる
}

Mapはちょっと違うので注意

for (Map.Entry<K, V> entry : map.entrySet())
{
    // entry.getKey()でマップのキー
    // entry.getValue()でマップの値
}

Guava

GuavaのCollectionパッケージでよく使うもの

  • Lists
  • Sets
  • Maps
List<T>  list = Lists.newArrayList();
Set<T>    set = Sets.newHashSet();
Map<K, V> map = Maps.newHashMap();

ジェネリクスを省略できる.

あまり使わないけど, 「あ, これ使ったら楽だな」というもの

  • BiMap
    • 双方向のmap, 通常はkey→valueだが, inverse()するとvalue→keyが可能. ちなみにkeyだけでなくvalueも重複不可.
  • Multiset
    • 要素の重複が可能なSet. 重複した要素はcount(要素)で重複数を得られる.
  • Multimap
    • キーの重複が可能なMap. get(key)でListが返ってくる.