Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add transformEntries method to Maps and SortedMaps #303

Closed
GoogleCodeExporter opened this issue Apr 7, 2015 · 4 comments
Closed

add transformEntries method to Maps and SortedMaps #303

GoogleCodeExporter opened this issue Apr 7, 2015 · 4 comments

Comments

@GoogleCodeExporter
Copy link

The Maps class should have a transformEntries method. Currently there is
only transformValues method. Sometimes the result of transformation depends
also on the key, not only on the original value.
Also it would honor a principle of uniformity because filtering methods
already exist in both forms - filterEntries and filterValues.

(This issue raised from the
http://code.google.com/p/google-collections/issues/detail?id=291 issue
where the method was meant for newly proposed class SortedMaps, later I
realized that it is not in Maps class too.)

Thanks!

Original issue reported on code.google.com by tomas.za...@gmail.com on 30 Nov 2009 at 8:51

@GoogleCodeExporter
Copy link
Author

In a transformEntries() method, one could transform the key as well as the 
value, and 
we couldn't be sure that two entries weren't transforming their key to the same 
value. The result would be a corrupted map.

What would make more sense is a version that accepts a Function<Entry<K, V1>, 
V2>; 
that is, the key is available to the function but a new key can't be produced. 
However, it's too late to change the existing method to work this way, it can't 
be 
added as an overload, and it -- at this point -- doesn't strike as being widely 
useful enough to justify a new method on the class.

However, I'll leave this open for other users to provide additional motivation.

Original comment by kevinb@google.com on 8 Dec 2009 at 5:32

  • Added labels: Milestone-Post1.0

@GoogleCodeExporter
Copy link
Author

Tomas's suggestion in Issue 291 did have the form you suggest:

<K,V1,V2> SortedMaps.transformEntries(
  SortedMap<K,V1> fromMap,
  Function<? super Map.Entry<K,V1>,V2> function
)

Since that issue dealt with SortedMaps, I asked him to file a separate issue 
about 
the new method. 

Original comment by jared.l....@gmail.com on 8 Dec 2009 at 6:16

@GoogleCodeExporter
Copy link
Author

Got it; then the problem is that the name "transformEntries" is misleading; it 
would 
have to be "transformValuesByEntry" or something similarly convoluted.

Original comment by kevinb@google.com on 8 Dec 2009 at 6:32

@GoogleCodeExporter
Copy link
Author

This issue has been moved to the Guava project (keeping the same id number). 
Simply replace 'google-collections' with 'guava-libraries' in your address 
bar and it should take you there.

Original comment by kevinb@google.com on 5 Jan 2010 at 11:09

  • Changed state: Moved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant