Hibernate - Set ou List

Pessoal, estou tentando mapear um relacionamento entre tabelas, usei o hibernate tools e obtive o seguinte resultado

<set name="roles" inverse="true" table="users_x_role">
    <key>
        <column name="fk_users" not-null="true">
            <comment></comment>
        </column>
    </key>
    <many-to-many entity-name="br.com.peopleway.model.persistence.to.Role">
        <column name="fk_role" not-null="true">
            <comment></comment>
        </column>
    </many-to-many>
</set>

Porem ao inves de usar Set, eu preferia trabalhar com List, pois o maior problema do Set que eu vi é que eu nao consigo coletar os objetos existentes dentro dessa colecao, por exemplo eu nao consigo fazer isso

Users user = (Users) getSession().get(Users.class, arg.getPkUsers());
Set rolesOfUser = user.getRoles();

for(int index = 0; index < rolesOfUser.size(); index++){
	Role roleOfUser = (Role) rolesOfUser.get(index);  //Erro pois isso nao exite
}

Agora se eu tivesse mapeado com List eu ja poderia fazer isso:

Users user = (Users) getSession().get(Users.class, arg.getPkUsers());
List rolesOfUser = user.getRoles();

for(int index = 0; index < rolesOfUser.size(); index++){
	Role roleOfUser = (Role) rolesOfUser.get(index);
}

Alguem sabe como mudar o mapeamento acima para list ? Existe vantagens entre usar Set os invez de List ?
eu tentei a seguinte alteração mas nao obtive sucesso:

<list name="roles" inverse="true" table="users_x_role">
    <key>
        <column name="fk_users" not-null="true">
            <comment></comment>
        </column>
    </key>
    <many-to-many entity-name="br.com.peopleway.model.persistence.to.Role">
        <column name="fk_role" not-null="true">
            <comment></comment>
        </column>
    </many-to-many>
</list>

Desde já muito obrigado