Código ruim:

String s = "";
for(Pessoa p : pessoas) {
    s += ", " + p.getNome();
}
// Remover a primeira vírgula.
s = s.substring(2);

Isto é um verdadeiro desperdiçador de memória. A repetida concatenação de strings em um loop causa um excesso de lixo e cópia de array. Além disso, é feio que a string resultante tenha fixo uma vírgula extra.

Código melhor:

int tamanhoEstimadoDoBuffer = 
        pessoas.size() * 16;
StringBuilder sb = new StringBuilder(
        tamanhoEstimadoDoBuffer);
for(Pessoa p : pessoas) {
    if(sb.length() > 0)
        sb.append(", ");
    sb.append(p.getNome());
}