Q:

More efficient 3 if statements in Java

Can anyone suggest a more efficient way to write the following method I wrote.  I new to programming in java so i feel like I might not know something.  Mainly, I was wondering a better way to write the three if statements that I want to get run on every parameter "synapse".  Thanks! 
public void addSynapse(Synapse synapse)
{
    Synapse newSynapse = new Synapse(synapse.getInputCell());
    this.synapses.add(newSynapse);

    if (synapse.getConnectedState())
    {
        this.connectedSynapses.add(newSynapse);
    }

    if (synapse.getActiveState())
    {
        this.activeSynapses.add(newSynapse);
    }

    if (synapse.getPreviousActiveState())
    {
        this.previousActiveSynapses.add(newSynapse);
    }
}

A:

You can create an enum SynapseState which is symbolic of the state of the class Synapse.  Advantage of embedding the state info in an enum is that you can use it in a switch statement.  Any unchanging information related to the state of the Synapse can be encompassed in the enum with abstract methods.  Check the example below what I've done from whatever info I could get out of the question sample code
enum SynapseState {
    CONNECTED(0) {
        @Override
        List<StateParameter> getStateParameters() {
            return null;
        }
    }, ACTIVE(1) {
        @Override
        List<StateParameter> getStateParameters() {
            return null;
        }
    }, PREVIOUS_ACTIVE(2) {
        @Override
        List<StateParameter> getStateParameters() {
            return null;
        }
    };

    private int value;

    private SynapseState(int value) {
        this.value = value;
    }
    abstract List<StateParameter> getStateParameters();

};

class SynapseMachine{

    List<Synapse> connectedSynapses;
    List<Synapse> activeSynapses;
    List<Synapse> previousActiveSynapses;
    List<Synapse> synapses;

    public void addSynapse(Synapse synapse)
    {
        Synapse newSynapse = new Synapse(synapse.getInputCell());
        this.synapses.add(newSynapse);

        switch(synapse.getState()){
        case CONNECTED:
             this.connectedSynapses.add(newSynapse);
            break;
        case ACTIVE:
            this.activeSynapses.add(newSynapse);
            break;
        case PREVIOUS_ACTIVE:
            this.previousActiveSynapses.add(newSynapse);

            break;
         default:   
             throw new IllegalStateException();
        }
    }   
}

class Synapse{
    public Synapse(Object o){}

    SynapseState getState(){
        // TODO Auto-generated method stub
        return null;    
    }

    public Object getInputCell() {
        // TODO Auto-generated method stub
        return null;
    }
}

class StateParameter{

}

