I 클래스forEach 루프에서 클래스를 실행 가능하게 만드는 방법은 무엇입니까?
public class Op {
public Map<String, String> ops;
}
가 어떻게 그것을 실행 foreach 루프에서 할 수있는 경우?
for (String key : op) {
System.out.println(op.ops.get(key))
}
UPD
여기 내 솔루션
Op op = new Op(new HashMap<String, String>() {{
put("a", "1");
put("b", "2");
put("c", "3");
}});
for (String key : op) System.out.println(op.map.get(key));
class Op implements Iterable<String> {
Map<String, String> map;
public Op(Map<String, String> map) {
this.map = map;
}
public Iterator<String> iterator() {
return map.keySet().iterator();
}
}
입니다하지만 상세 확실하지 않다. 너무 장황하니? 어쩌면 구현이 훨씬 간결한 방법일까요?
http://tutorials.jenkov.com/java-generics/implementing-iterable.html – buxter
예. 좋은 예입니다. 그러나 별도의 Iterator 클래스를 작성할 필요가 없습니다. 최소의 코드 행을 사용하여 가능한 간결하게 코드를 작성해야합니다. – barbara