¿Hay una manera simple de crear una lista de objetos de subclase a partir de una lista de objetos de superclase?

Tengo un conjunto de objetos de agente (la superclase).

Los objetos de agente pueden ser: 1) infectados (agente extenso) y 2) sanos (agente extendido). Ejemplo...

public class Healthy extends Agent

public class Infected extends Agent

Cada objeto del Agente x mantiene una lista de todos los objetos del Agente y que han entrado en contacto con el Agente x, independientemente de la subclase. El tipo de la lista es Agente y esta lista es una variable de instancia denominada "enlaces". Ejemplo...

public class Agent {
    protected Context<Object> context;
    protected Geography<Object> geog;
    private int Id;
    public Coordinate location;
    public ArrayList<Agent> links = new ArrayList<>();
    public ArrayList<Healthy> healthy_links = new ArrayList<>();

    public Agent(Context<Object> context, Geography<Object> geog) {
        this.context = context;
        this.geog = geog;
        this.Id = Id;
        this.location = location;
        this.links = links;
        this.healthy_links = healthy_links;
    }
}
//getters and setters

    public void findContacts(){
        Context context = ContextUtils.getContext(this);
        //create a list of all agents
        IndexedIterable<Agent> agents = context.getObjects(Agent.class);
        for(Agent a: agents){
            //if any of the agents are in the same location as this, if the links list doesnt already contain the agent, and if the agent is not this, then add it to the links list
            if(a.getLocation()== this.getLocation() && !this.links.contains(a) && this != a){

                this.links.add(a); //this is obviously possible//

                this.healthy_links.add(a); //this is obviously not possible, but is there a super simple alternative


            }
         }
      }

¿Hay una manera simple de revisar la lista de objetos del Agente y clasificar a todos los Agentes que están Saludables en una nueva lista llamada "enlaces_ saludables" de tipo Saludable?

Respuesta 1

Estoy creando un Sistema de envío donde me gustaría que mis archivos .class de Java Framework se mantengan en una ubicación específica y otro archivo .class cargado por un usuario en otra ubicación. El Marco debería ...

Actualmente tengo colisión entre 2 sprites trabajando, usando sprite.collidesWith (otherSprite). El problema es cuando el FPS en ciertos dispositivos cae por debajo de 20-25 FPS, si el segundo sprite se está moviendo ...

Estoy almacenando hashtable en mongodb usando BasicDBObject. Y ahora quiero recuperar esta tabla hash. ¿Cómo puedo hacer esto? HashTable <String, Login> loginHashTable; HashTable <Cadena, Otro> ...

Hacen casi lo mismo. ¿Puedo decir que son intercambiables?