2015-01-03 8 views
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 개의 트리 개체를 추가하고 같은 개체를 목록에 추가 할 수 있습니까?

답변

1

분명히 해 봤니? 즉 다음과 같이 표시됩니다.

왜 작동하지 않는지는 알 수 없습니다. 하지만 RepastSimphony에 대한 경험이 없기 때문에 나는 아주 잘못 될 수 있습니다. (

+0

약간 부끄러웠다. 나는 이것을 시도한 것으로 생각했다. –