Il modo più sofisticato per creare stringhe separate da virgole da una collezione / matrice / lista?

Durante il mio lavoro con i database ho notato che scrivo stringhe di query e in questa stringa devo inserire diverse restrizioni nella clausola where da una lista / array / collezione. Dovrebbe assomigliare a questo:

select * from customer where customer.id in (34, 26, ..., 2); 

Puoi semplificarlo riducendo questo alla domanda che hai una collezione di stringhe e vuoi creare un elenco separato da virgole di queste stringhe in una sola stringa.

Il mio approccio che ho usato finora è qualcosa del genere:

 String result = ""; boolean first = true; for(String string : collectionOfStrings) { if(first) { result+=string; first=false; } else { result+=","+string; } } 

Ma questo è come puoi vedere molto brutto. Non puoi vedere cosa succede lì al primo sguardo, specialmente quando le stringhe costruite (come ogni query SQL) si complicano.

Qual è il tuo (più) modo elegante?