1
목록 추가 :컨텍스트에 동일한 개체와 나는 나무 클래스를 생성 비교기 구현
class SuitComp implements Comparator<Tree> {
@Override
public int compare(Tree o1, Tree o2) {
return Double.compare(o1.getSuit(), o2.getSuit());
}
}
class Tree {
private ContinuousSpace<Object> space;
private Grid<Object> grid;
public double suitability;
public int id;
public static int count = 1;
public Tree(ContinuousSpace<Object> space, Grid<Object> grid, double suitability, int id) {
this.space = space;
this.grid = grid;
this.id = count;
count++;
}
public double getSuit() {
return suitability;
}
public void setSuit(double suitability) {
this.suitability = suitability;
}
@Override
public String toString() {
return "Tree " + id + " is the most suitable, with a value of: " + suitability;
}
public void measureSuit() {
System.out.println("Tree number " + id + " has a suitability of " + suitability);
}
}
그리고 내가 지리적 공간에 (문맥에 넣어 한을 Respast Simphony를 사용하여 그리드)에 : 나는 올바른 생각하면
public class TreeBuilder implements ContextBuilder<Object> {
@Override
public Context build(Context<Object> context) {
context.setId("taylor");
ContinuousSpaceFactory spaceFactory =
ContinuousSpaceFactoryFinder.createContinuousSpaceFactory(null);
ContinuousSpace<Object> space =
spaceFactory.createContinuousSpace("space", context,
new RandomCartesianAdder<Object>(),
new repast.simphony.space.continuous.WrapAroundBorders(),
50, 50);
GridFactory gridFactory = GridFactoryFinder.createGridFactory(null);
Grid<Object> grid = gridFactory.createGrid("grid", context,
new GridBuilderParameters<Object>(new WrapAroundBorders(),
new SimpleGridAdder<Object>(),
true, 50, 50));
, 아래의 코드에서, 내가 만들어
ArrayList<Tree> trees = new ArrayList<Tree>();
int treeCount = 10;
for (int i = 0; i < treeCount; i++) {
double suitability = Math.random();
int id = i;
context.add(new Tree(space, grid, suitability, id));
Tree tree;
tree = new Tree(space, grid, suitability, id);
trees.add(tree);
다음에 I가 적합 값과 최대 적합성 값을 출력 : 10 트리 객체는 새로운 10 개 별도 트리 객체를 생성하고 ArrayList를에 추가 한 다음 컨텍스트로 첨가.
tree.measureSuit();
Tree maxTree = Collections.max(trees, new SuitComp());
System.out.println(maxTree);
}
for (Object obj : context) {
NdPoint pt = space.getLocation(obj);
grid.moveTo(obj, (int)pt.getX(), (int)pt.getY());
}
return context;
}
}
내 질문은 : 컨텍스트에 10 개의 트리 개체를 추가하고 같은 개체를 목록에 추가 할 수 있습니까?
약간 부끄러웠다. 나는 이것을 시도한 것으로 생각했다. –