should this be: else if ( this.tags.equals(tags) == false) ?

!= is just testing to see if the object references are the same isn't it?