次のコード スニペットは、Commons フレームワークの CollectionUtils.java ファイルから取得したものです。
private static class CardinalityHelper<O> {
final Map<O, Integer> cardinalityA, cardinalityB;
public CardinalityHelper(final Iterable<? extends O> a,
final Iterable<? extends O> b) {
cardinalityA = CollectionUtils.<O> getCardinalityMap(a);
cardinalityB = CollectionUtils.<O> getCardinalityMap(b);
}
public final int max(final Object obj) {
return Math.max(freqA(obj), freqB(obj));
}
public final int min(final Object obj) {
return Math.min(freqA(obj), freqB(obj));
}
public int freqA(final Object obj) {
return getFreq(obj, cardinalityA);
}
public int freqB(final Object obj) {
return getFreq(obj, cardinalityB);
}
private final int getFreq(final Object obj,
final Map<?, Integer> freqMap) {
final Integer count = freqMap.get(obj);
if (count != null) {
return count.intValue();
}
return 0;
}
}
getCardinalityMap が返さ<O> Map<O, Integer>
れる
- とはどういう
cardinalityA = CollectionUtils.<O> getCardinalityMap(a);
意味ですか? これはある種の型キャストですか? - 戻り型とはどういう
<O> Map<O, Integer>
意味ですか? - このトリックは何と呼ばれますか?
ありがとう