@@ -1237,38 +1237,38 @@ public final A mode(final Ord<A> o) {
12371237 return sort (o ).group (o .equal ()).maximum (intOrd .comap (List .<A >length_ ())).head ();
12381238 }
12391239
1240- public final <K > HashMap <K , List <A >> groupBy (final F <A , K > keyFunction ) {
1240+ public final <B > HashMap <B , List <A >> groupBy (final F <A , B > keyFunction ) {
12411241 return groupBy (keyFunction , Function .identity ());
12421242 }
12431243
1244- public final <K , V > HashMap <K , List <V >> groupBy (
1245- final F <A , K > keyFunction ,
1246- final F <A , V > valueFunction ) {
1247- return this .groupBy (keyFunction , valueFunction , List .<V >nil (),
1248- new F2 <V , List <V >, List <V >>() {
1244+ public final <B , C > HashMap <B , List <C >> groupBy (
1245+ final F <A , B > keyFunction ,
1246+ final F <A , C > valueFunction ) {
1247+ return this .groupBy (keyFunction , valueFunction , List .<C >nil (),
1248+ new F2 <C , List <C >, List <C >>() {
12491249 @ Override
1250- public List <V > f (final V head , final List <V > tail ) {
1250+ public List <C > f (final C head , final List <C > tail ) {
12511251 return List .cons (head , tail );
12521252 }
12531253 });
12541254 }
12551255
1256- public final <K , V , R > HashMap <K , R > groupBy (
1257- final F <A , K > keyFunction ,
1258- final F <A , V > valueFunction , final R groupingIdentity , final F2 <V , R , R > groupingAcc ) {
1256+ public final <B , C , D > HashMap <B , D > groupBy (
1257+ final F <A , B > keyFunction ,
1258+ final F <A , C > valueFunction , final D groupingIdentity , final F2 <C , D , D > groupingAcc ) {
12591259 return this .foldLeft (
1260- new F <HashMap <K , R >, F <A , HashMap <K , R >>>() {
1260+ new F <HashMap <B , D >, F <A , HashMap <B , D >>>() {
12611261 @ Override
1262- public F <A , HashMap <K , R >> f (final HashMap <K , R > map ) {
1263- return new F <A , HashMap <K , R >>() {
1262+ public F <A , HashMap <B , D >> f (final HashMap <B , D > map ) {
1263+ return new F <A , HashMap <B , D >>() {
12641264 @ Override
1265- public HashMap <K , R > f (final A element ) {
1266- final K key = keyFunction .f (element );
1267- final V value = valueFunction .f (element );
1265+ public HashMap <B , D > f (final A element ) {
1266+ final B key = keyFunction .f (element );
1267+ final C value = valueFunction .f (element );
12681268 map .set (key , map .get (key )
1269- .map (new F <R , R >() {
1269+ .map (new F <D , D >() {
12701270 @ Override
1271- public R f (final R existing ) {
1271+ public D f (final D existing ) {
12721272 return groupingAcc .f (value , existing );
12731273 }
12741274 })
@@ -1277,7 +1277,7 @@ public R f(final R existing) {
12771277 }
12781278 };
12791279 }
1280- }, HashMap .<K , R >hashMap ()
1280+ }, HashMap .<B , D >hashMap ()
12811281 );
12821282 }
12831283
0 commit comments