最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。' n. _. X' j0 V
private boolean findPotentialPartner(){' F, W, E' K( Z$ m4 M
boolean value = false;- \' c) P# `: j& J
/ t* q3 f, E8 A" H; z* M3 K OrderedMulti2DGrid grid = space.getCurrentAgentSpace();' P( K2 a, C' k; A% C
Iterator iterator = grid.getIteratorAt(x, y); 1 ]+ O* L: g9 [2 G& J SexAgent ag1 = null; 9 K6 i" l A! P3 E8 L/ q
SexAgent [] potenAgent = new SexAgent[20];# @" g: U" d% F( h
int goodNumber = 0;! o. L' U$ y& p$ V
while(iterator.hasNext()){ 5 h7 y' g) o+ [: e" S7 D" g# @ System.out.println("XXXXXXXXXXXXXXXXXXXXX"); $ C# x4 p: p/ }# G+ _& a ag1 = (SexAgent)iterator.next();: v! r* x# |0 p$ \+ F9 z
if((ag1.sex == FEMALE) z7 Z" V8 W) @3 I6 \+ u &&(!ag1.isCoupled())){) I3 ?3 T+ h+ t$ k) H4 h
System.out.println("YYYYYYYYYYYYYYYYYYYY"); ; T" y1 y! D; @: r0 c4 C. z3 v( F potenAgent[goodNumber] = ag1; # q( q; m' Z6 c0 i- R+ ?& m goodNumber ++;. K4 p& }1 q+ a
} Z5 V# U( _8 k Y } * z t; q7 Y; R1 O# D$ ]. ] - O% B# t8 i) S$ g
if(goodNumber >0){4 d/ ^2 e* b- ~# P: V
System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"); 6 K# m, |+ S5 B7 n; X# y8 p
Random rd1 = new Random(); 1 s% V% [2 d+ D1 |. D' Q; Y int select = rd1.nextInt(goodNumber);1 m' L' C& ~( q
potentialParterner = potenAgent[select];3 q1 U8 S2 L( `8 c; h) S1 B. h4 P
value = true;; [$ P5 n0 A+ v7 F; S2 Q+ ?8 Q& z
}. h# ^8 C+ {& E, q* C8 E+ p+ ~
return value; " g6 X8 u9 ~9 w" J } * H3 u( }0 D5 L6 S始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。