$B:n@.(B:2004$BG/(B4$B7n(B1$BF|(B
Iterator$B%Q%?!<%s$o!"=89g$nmwag$k=g$k(b1$b$d$:$d%"%/%;%9$9$k;~$n%q%?!<%s$g$"$k!#(b
Iterator$B%Q%?!<%s$k$d$$$f!"2<5-$nk\(b($b0j2
Java$B8@8l$G3X$V%G%6%$%s%Q%?!<%sf~lg(b
$B7k>k9@Cx(B
$B%=%U%H%P%s%/%Q%V%j%C%7%s%03t<02q
$B$G
$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"k\$n=89g$ri=$9(bbookshelf$b%/%i%9$r:n$c$f$$$k!#$3$n%/%i%9$o!"2<5-$n%a%=%c%i$r;}$d!#(b
$BK\$N:}?t$rJV$9!#(B
index$BHVL\$NK\$rJV$9!#(B
$B$3$l$i$N%a%=%C%I$,$"$l$P!"
BookShelf book_shelf;
$B!A!A!A!A!A!A!A!A!A!A!A(B
int length = book_shelf.getLength();
for (int i = 0 ; i < length ; i++) {
Book book = book_shelf.getBookAt(i);
:
}
$B$7$+$7!"!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"$o$6$o$6(biterator$b%q%?!<%s$r;h$c$f!")$7$F$$$k!#(B
BookShelf book_shelf;
$B!A!A!A!A!A!A!A!A!A!A!A(B
Iterator it = book_shelf.iterator();
while (it.hasNext()) {
Book book = it.next();
:
}
$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"(bfor$b%k!<%w$g$j$/!"(biterator$b%q%?!<%s$r;h$&$3$h$g!"
BookShelf$B%/%i%9$N
u$NG[Ns$G$O$J$/!"(BVector$B$r;H$&$h$&$K$7$F$b!"(BBookShelf$B%/%i%9$rMxMQ$9$kB&$OJQ99$7$J$/$F:Q$`!#(B
$B$3$l$O!"@5$7$/$J$$$h$&$K;W$&!#(B
BookShelf$B%/%i%9$rMxMQ$9$kB&$O!"2<5-$n(b2$b$d$n%a%=%c%i$+$i@.$k!"(bbookshelf$b%/%i%9$n%$%s%?!<%u%'!<%9$r8+$f$$$k!#(bfor$b%k!<%w$r;h$&>l9g$G$b!"(BBookShelf$B%/%i%9$N
$BK\$N:}?t$rJV$9!#(B
index$BHVL\$NK\$rJV$9!#(B
$B2>$K!"(BBookShelf$B%/%i%9$N
BookShelf$B%/%i%9$K!">e5-$N(B2$B$D$N%a%=%C%I$r;}$?$;$F$$$?!"$H$$$&$3$H$O!"85!9!"(BBookShelf$B%/%i%9$rMxMQ$9$k;~$K!"(Bfor$B%k!<%w$r;h$c$f$bni$$!"$h@k8@$7$f$$$?$h$&$j$b$n$g$"$k!#$3$l$i$n%a%=%c%i$rmq0u$7$?;~e@$g!"(bbookshelf$b%/%i%9$o!"(biterator$b%q%?!<%s$re,mq$9$y$-%1!<%9$g$o$j$/$j$c$f$$$k$h;w$&!#(b
$BA0=R$N(BBookShelf$B%/%i%9$b$=$&$@$,!"(BIterator$B%Q%?!<%s$r;h$o$j$$=89g$n%/%i%9$g$o!"8d?t$rjv$9(bsize$b%a%=%c%i$h!";xdj$7$?0lcv$nmwag$rjv$9(bgetat$b%a%=%c%i$h$$$&!"(b2$b$d$n%a%=%c%i$rmq0u$9$k$n$,$u$d$&$@!#$3$l$i$n%a%=%c%i$o!"0el[$nn;2r$h$7$f!"0j2<$n$h$&$j>r7o$rK~$?$9$3$H$,K>$^$7$$!#(B
$B
$BG$0U$NMWAG$KBP$7$F!"0lDj;~4V$G%"%/%;%9$G$-$k$h$&$K$9$Y$-!#(B
$BNc$($P!"=89g$NMWAG$K%"%/%;%9$9$kB&$G$O!"
FooSet set;
$B!A!A!A!A!A!A!A!A!A!A!A!A!A!A(B
for (int i = 0 ; i < set.size() ; i++) {
Foo foo = set.getAt(i);
:
}
$B$3$N;~!"(Bsize$B%a%=%C%I$OMWAG$N8D?tJ,$@$17+$jJV$7
$B$^$?!"(BgetAt$B%a%=%C%I$O!"2?HVL\$NMWAG$G$"$C$F$b!"0lDj$N;~4V$G
getAt$B%a%=%C%I$O!"3N$+$K;XDj$5$l$?0LCV$NMWAG$rJV$9$N$@$,!"A4$F$NMWAG$K%"%/%;%9$9$k=hM}$,Fs=E%k!<%w$k$j$k$?$a!";ve!";H$$$b$N$K$J$i$J$$!#(B
$B=89g$N%/%i%9$G$O!"$3$l$i$NE@$KCm0U$7$F!"
$B5U$K!"8D?t$rJV$9(Bsize$B%a%=%C%I$H!";XDj$7$?0LCV$NMWAG$rJV$9(BgetAt$B%a%=%C%I$,!"=89g%/%i%9$KDj5A$G$-$k$N$G$"$l$P!"8F$S=P$7B&$G$O(Bfor$B%k!<%w$r;h$($pni$$!#$o$6$o$6(biterator$b%q%?!<%s$r;h$&i,mw$ol5$$!#(b
int size = set.size();
for (int i = 0 ; i < size ; i++) {
Foo foo = set.getAt(i);
:
}
class FooSet {
private:
CObList m_list;
public:
Foo* getAt ( int index ) {
POSITION position = m_list.GetHeadPosition();
int i = 0;
while (position) {
Foo* foo = (Foo*)m_list.GetNext(position);
if (i == index)
return foo;
i++;
}
}
};
Iterator$B%Q%?!<%s$r;h$&$y$-$j$n$o!"(bgetat$b%a%=%c%i$n
$B!V%G%6%$%s%Q%?!<%sf~lg!w$k9g$o$;$f!"k\$nnc$r<($=$&!#?t==k|:}$nk\$r;}$d?^=q4[%g!<%?%y!<%9$r9m$($k!#$3$3$g!"%f!<%6$,$"$k>r7o$GK\$r8!:w$7$?$H$7$h$&!#Nc$($P!"Cx
$B8!:w$5$l$?K\$N%$%s%9%?%s%9$r$9$Y$F@8@.$7$F$+$i!"$=$N=89g$r0lEY$KJV$9!"$H$$$&;EMM$G$bNI$$$N$G$"$l$P!"(BIterator$B%Q%?!<%s$r;h$&i,mw$o$j$$!#$7$+$7!"$3$n;emm$k$o!"
$B$3$N$h$&$J%1!<%9$g$o!"(biterator$b%q%?!<%s$r;h$&$y$-$g$"$k!#8!:w7k2l$h$7$f!"k\$n=89g$g$o$j$/!"(biterator$b$rjv$9$n$@!#(b
$B$3$&$9$l$P!"8!:w%\%?%s$r2!$7$?D>8e$K!"%f!<%6$k7k2l$rjv$9$3$h$b$g$-$k!#%f!<%6$,8!:w$5$l$?k\$r(b1$b$d$:$d%a%'%c%/$7$f$$$k4v$k!"%p%c%/%0%i%&%s%i$g
$B$^$?!"?^=q4[%G!<%?%y!<%9$,%j%b!<%h$k$"$k>l9g$O!"%G!<%?e>AwNL$r:G>.8B$KM^$($i$l$k!"$H$$$&8z2L$b$"$k!#8!:w$G?t@i:}$NK\$,%R%C%H$7$?$H$7$F$b!"%f!<%6$,(b3$b:}l\$gl\e*$nk\$r8+$d$1$f$7$^$($p!"e>Aw$5$l$kK\$N>pJs$O(B3$B:}J,$@$1$G:Q$`!#(B
$B$3$NB>$K$b!"(BIterator$B%Q%?!<%s$r;h$&$y$-%1!<%9$o$?$/$5$s$"$k!#nc$($p!"2<5-$n$h$&$j%1!<%9$g$"$k!#(b
$BItJ,=89g$r:n$k>l9g$b!"(BIterator$B%Q%?!<%s$r;h$&$3$h$,$"$k!#(b
$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"k\$n=89g$ri=$9(bbookshelf$b%/%i%9$r:n$c$?!#$3$3$g!"$9$y$f$nk\$ncf$+$i!"nc$($pcx
$BCx
$B=89g$rI=$9%/%i%9$,!"C1$J$k%G!<%?$n=89g$g$o$j$/!"%g!<%?4im}$k4x$o$k5!g=$r;}$c$f$$$k>l9g$O!"(BIterator$B%Q%?!<%s$r;h$c$?j}$,ni$$!#(b
$BNc$($P!"(BBookShelf$B%/%i%9$K!"
$B%^%9%?!<%u%!%$%k$k!"k\$n>pJs$r=q$-9~$`!#(B
$B$3$N>l9g!"Cx
$B8!:w$7$?7k2L$KBP$7$F$O!"K\$N>pJs$r;2>H$9$k$3$H$7$+$5$;$J$$!"$H$$$&0U?^$r<($9$?$a$k!"8!:w7k2l$o(bbookshelf$b%/%i%9$g$o$j$/!"(biterator$b$h$7$fjv$9$h$&$k$9$k$n$g$"$k!#(b
Iterator$B$r
C++$B$G9M$($k$H!"Nc$($P!"Cx
$B%$%s%9%?%s%9$N0LCV$r;}$DJ}K!$G$O!"8!:w$r
$B%]%$%s%?$r;}$DJ}K!$G$b!"8!:w$r
$B8!:w$7$?;~$K!"(BBook$B%$%s%9%?%s%9$r%3%T!<$7!"(biterator$b<+?h$b(bbook$b%$%s%9%?%s%9$r;}$d$h$&$k$9$l$p!"$3$nldbj$r2shr$g$-$k!#$7$+$7!"%a%b%j$rl5bl$k>CHq$9$k7k2L$H$J$k!#%G!<%?%5%$%:ey$k$h$c$f!"it2dg=$j>l9g$bB?$$!#(B
Java$B$N>l9g$O(Bgarbage collector$B$N;EAH$_$,$"$k$N$G!"LdBj$,L5$$!#(BC++$B$G$bF1MM$K!"(BBook$B%/%i%9$K;2>H%+%&%s%?$r@_$1!"(Bgarbage collection$B$r9T$&!"$H$$$&J}K!$b9M$($i$l$k!#(B
$B@V7P@V0^$HHO0O$r;XDj$7$F!"HO0OFb$KB8:_$9$kE7BN%G!<%?$r%g!<%?%y!<%9$+$i8!:w$7$?;~$kjv$5$l$k(biterator$b$g$"$k!#(b
CatalogDBAccessor$B%/%i%9$O!"
CatalogDBManager manager;
$B!A!A!A!A!A!A!A!A!A!A!A!A!A(B
// $B8!:wHO0O(B
Coor coor = new Coor(0.0, 0.0);
double radius = 1.0;
// $B8!:w(B
CatalogDBAccessor accessor = manager.getAccessor(coor, radius);
// $B8!:w7k2L$NI=<($j$i(b
CatalogStar star = accessor.getFirstElement();
while (star != null) {
:
star = accessor.getNextElement();
}
PIXY$B%7%9%F%`(B2$B$N%G!<%?%y!<%9%"%/%;%9$g$o!"b?$/$n(biterator$b%/%i%9$,;hmq$5$l$f$$$k!#(b
$BF1DjMQ%+%?%m%0%G!<%?%y!<%9$ncf$+$i8!:w$7$?e7bn%g!<%?$r!"=g
$BE76u$r%a%C%7%e>u$KJ,3d$7!"$=$N$&$A!"M-8z$K$J$C$F$$$kItJ,$N!"%G!<%?%y!<%9fb$n>l=j(B($B%U%)%k%@3,AX(B)$B$r!"=g
$BE76u$r%a%C%7%e>u$KJ,3d$7!"$=$N$&$A!"M-8z$K$J$C$F$$$kItJ,$N!"%G!<%?%y!<%9$k5-o?$5$l$f$$$k(bxml$bmwag$r!"=g
$B2hA|>pJs%G!<%?%y!<%9$ncf$+$i8!:w$7$?2ha|>pJs%G!<%?$r!"=g
$B%G!<%?%y!<%9fb$n$"$k>l=j$KB8:_$9$kMWAG$r!"=g
$B%G%#%9%/>e$K9=C[$5$l$?%G!<%?%y!<%9fb$n$"$k>l=j(B($B%U%)%k%@(B)$B$KB8:_$9$k(BXML$B%U%!%$%k$K4^$^$l$F$$$kMWAG$r!"=g
$B%a%b%j>e$K9=C[$5$l$?%G!<%?%y!<%9fb$n$"$k>l=j$KB8:_$9$kMWAG$r!"=g
$B$3$l$i$N(BIterator$B%/%i%9$N4X78$O!"
Iterator$B%/%i%9$N4X78(B
$B?^$K<($9$h$&$k!"%g!<%?%y!<%9$n%q%c%1!<%8$k$o!"$$$/$d$+$n%^%m!<%8%c%/%i%9$,$"$k!#(b
PIXY$B%7%9%F%`(B2$B$O!"!V2hA|>pJs%G!<%?%y!<%9!w!vf1djmq%+%?%m%0%g!<%?%y!<%9!w!v8wey%g!<%?%y!<%9!w$h$$$&!"(b3$b$d$n%g!<%?%y!<%9$r;}$d!#$=$l$>$l$KBP1~$9$k%^%M!<%8%c$n%/%i%9$,!"(binformationdbmanager, CatalogDBManager, MagnitudeDBManager $B$G$"$k!#(B
3$B$D$N%G!<%?%y!<%9$ncf?h$o!"6&dl$n7a<0$r:nmq$7$f$$$k!#$=$n6&dl$n7a<0$k4p$e$$$?%"%/%;%9$r;j$k$n$,!"(bprimitivemanager$b%/%i%9$g$"$k!#>e5-$N(B3$B$D$N%^%M!<%8%c$o!"fbit$g$3$n%/%i%9$r;hmq$7$f$$$k!#c"$7!"$3$n%/%i%9$ocj>]%/%i%9$G$"$k!#(B
$B%G!<%?%y!<%9$o!"%g%#%9%/>e$K9=C[$9$k$3$H$b!"%a%b%j>e$K9=C[$9$k$3$H$b$G$-$k$h$&$K$J$C$F$$$k!#%G%#%9%/>e$K9=C[$7$?%G!<%?%y!<%9$r07$&$n$,(bprimitivefilemanager$b%/%i%9!"%a%b%j>e$K9=C[$7$?%G!<%?%y!<%9$r07$&$n$,(bprimitivememorymanager$b%/%i%9$g$"$k!#$i$a$i$b!"(bprimitivemanager$b%/%i%9$n%5%v%/%i%9$g$"$k!#(b
$BE7BN%+%?%m%0$rFI$_9~$_!"E7BN%G!<%?$r=g$k(b1$b$d$:$d
PIXY$B%7%9%F%`(B2$B$G%5%]!<%h$7$f$$$ke7bn%+%?%m%0(b$B$K$O!"$5$^$6$^$J7ABV$N$b$N$,$"$k!#>.$5$$$b$N$G$O!"$o$:$+?t9T$N%F%-%9%H%U%!%$%k$N$b$N$b$"$k$7!"Bg$-$$$b$N$G$O!"?t%.%,%P%$%H$b$N%G!<%?$,!"j#?t$n%u%!%$%k$kj,3d$5$l$f5-o?$5$l$f$$$k$b$n$b$"$k!#(b
$B$$$+$J$k
CatalogReader$B%/%i%9$O!"2<5-$n$h$&$j%$%s%?!<%u%'!<%9$r;}$d!#(b
$BE7BN%+%?%m%0$r3+$/!#$3$N>l9g!"$9$Y$F$NE7BN%G!<%?$r
$B@V7P@V0^$HHO0O$r;XDj$7$F!"E7BN%+%?%m%0$r3+$/!#$3$N>l9g!"%+%?%m%0$K5-O?$5$l$F$$$kE7BN$N$&$A!"HO0OFb$N$b$N$@$1$r
$BE7BN%G!<%?$r(b1$b$d
$B$3$N%$%s%?!<%u%'!<%9$k9gcw$9$k$b$n$g$"$l$p!"$$$+$j$k$b$n$g$"$c$f$b!"e7bn%+%?%m%0$h$7$f!"(bpixy$b%7%9%f%`(b2$b$ofi$_9~$`$3$h$,$g$-$k!#nc$($p!"%a%b%j>e$K(BVector$B$G;}$C$F$$$k$$$/$D$+$NE7BN%G!<%?$n=89g$d!"$i$3$+$n(bwww$b%z!<%8$j$i!"%u%!%$%k$h$7$fj]b8$5$l$f$$$j$/$f$bni$$!#(b
$BE7BN%+%?%m%0$,J#?t$N%U%!%$%k$KJ,3d$5$l$F$$$l$P!"E7BN%G!<%?$r(b1$b$d$:$dfi$s$g$$$/escf$g!"%u%!%$%k$r@z$j49$($ki,mw$,$"$k!#$^$?!"e7bn%+%?%m%0$ncf$k$o!"e7bn%g!<%?$,$&$^$/@0ns$5$l$f$*$j!";xdj$7$?ho0o30$n%g!<%?$nitj,$o%9%-%c%w$9$k$3$h$g!"8zn(ni$/i,mw$j%g!<%?$@$1$r