Google の ListMultimap の List<V> replaceValues(K key,Iterable<? extends V> values)
が、置き換え対象が、Iterable<? extends V> であり、結局はKeyに紐つく全体を置き換えることに
なり、リストの1要素だけ置き換えたい場合に不便である。ArrayListMultimap は、finalなので
継承はできないので、しかたなく書いてみた。
import java.util.List;
import com.google.common.collect.ListMultimap;
/**
* ListMultimap の置換など。。
*/
public final class ListMultiHelper{
private ListMultiHelper(){}
public static <K,V> void replaceIndexValue(ListMultimap<K,V> m,K key,int index,V value){
List<V> list = m.get(key);
list.remove(index);
list.add(index,value);
}
public static <E> List<E> replace(List<E> list,int index,E e){
list.remove(index);
list.add(index,e);
return list;
}
}