So in C#, I can treat a string[] as an IEnumerable<string>.
Is there a Java equivalent?
-
Iterable <T>Learning : I inserted the quote because I do not know how to escape the < char in the answer box in SO :(bruno conde : mark that as code :)Winston Smith : If you highlight the piece of code and click the Code Sample toolbar button (5th one across) on the markdown editor, if will get formatted correctly.Jon Skeet : Alternatively, for "inline" code, just put backticks around it. I've edited your post to show that - it's just `Iterable`. -
Are you looking for
Iterable<String>?Iterable<T> <=> IEnumerable<T> Iterator<T> <=> IEnumerator<T> -
I believe the Java equivalent is
Iterable<String>. AlthoughString[]doesn't implement it, you can loop over the elements anyway:String[] strings = new String[]{"this", "that"}; for (String s : strings) { // do something }If you really need something that implements
Iterable<String>, you can do this:String[] strings = new String[]{"this", "that"}; Iterable<String> stringIterable = Arrays.asList(strings); -
Iterable<String>is the equivalent ofIEnumerable<string>.It would be an odditity in the type system if arrays implemented
Iterable.String[]is an instance ofObject[], butIterable<String>is not anIterable<Object>. Classes and interfaces cannot multiply implement the same generic interface with different generic arguments.String[]will work just like anIterablein the enhanced for loop.String[]can easily be turned into anIterable:Iterable<String> strs = java.util.Arrays.asList(strArray);Prefer collections over arrays (for non-primitives anyway). Arrays of reference types are a bit odd, and are rarely needed since Java 1.5.
0 comments:
Post a Comment