Retorno de arraylist JAVA

Olá a todos, tenho esse método abaixo onde tenho 2 arraylist e comparo os dois, me retornando os valores diferentes de um para o outro.

public static void main(String[] args) {
        
        ArrayList<String> languages1 = new ArrayList<>();

        languages1.add("Java");
        languages1.add("English");
        languages1.add("C");
        languages1.add("Spanish");
            
       
        ArrayList<String> languages2 = new ArrayList<>();
            
        languages2.add("English");
        languages2.add("Spanish");
        
    
    languages1.removeAll(languages2);
    System.out.println("Linguagens diferentes: " + languages1);
}

Este método vai me retornar na saída:

Linguagens diferentes: [Java, C]

A minha dúvida é, como eu faço para que no retorno não apareça os colchetes [ ] ?

Aparecer somente as strings Java, C, dessa forma:

Linguagens diferentes: Java, C

Obrigado!

O teu método não retorna nada. Retorno é o que um método devolve a outro que o chama através de return.

O teu método na realidade, escreve na consola o conteúdo de uma lista. E isso acontece porque ele invoca implicitamente o toString da tua lista. E esse toString que está implementado em AbstractCollection, uma classe pai (avô :slight_smile: ) de ArrayList é que retorna (aqui sim) o conteúdo da lista com os colchetes.

Para que seja imprimido na consola como pretendes, não uses o toString da lista e cria o teu próprio output.

  (...) 
  String languagesString = String.join(", ", languages1); // junta os elementos da lista, com a virgula como separador
  System.out.println("Linguagens diferentes: " + languagesString);
1 curtida

Consegui adaptando assim:

String joined = TextUtils.join("-", languages1);
System.out.println("Linguagens diferentes: " + joined);