KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am trying to understand Java Iterator and Iterable interfaces I am writing this class class MyClass implements Iterable<String> { public String[] a = null; public MyClass(String[] arr) { a = arr; } public MyClassIterator iterator() { return new MyClassIterator(this); } public class MyClassIterator implements Iterator<String> { private MyClass myclass = null; private int count = 0; public MyClassIterator(MyClass m) { myclass = m; } public boolean hasNext() { return count < myclass.a.length; } public String next() { int t = count; count++; return myclass.a[t]; } public void remove() { throw new UnsupportedOperationException(); } } } It seems to be working. Should I have: Myclass implements Iterable<Stirng>, Iterator<String> { } Or I should put MyClassIterator outside MyClass as class MyClass implements Iterable<String> { public String[] a = null; public MyClass(String[] arr) { a = arr; } public MyClassIterator iterator() { return new MyClassIterator(this); } } public class MyClassIterator implements Iterator<String> { private MyClass myclass = null; private int count = 0; public MyClassIterator(MyClass m) { myclass = m; } public boolean hasNext() { return count < myclass.a.length; } public String next() { int t = count; count++; return myclass.a[t]; } public void remove() { throw new UnsupportedOperationException(); } } Which one is better
Tags (comma-separated)
Save Edits
Cancel