Показать ArrayList char в Java - PullRequest
       5

Показать ArrayList char в Java

0 голосов
/ 26 сентября 2019

Я работаю над первой частью проблемы перестановки строк и просто зацикливаюсь на первом символе строки и меняю его местами с каждым последующим символом той же строки.Я инициализировал пустой ArrayList для хранения всех этих перестановок с именем listeFinale.Когда я печатаю этот ArrayList, я получаю коллекцию объектов, а не значений ([[C@61bbe9ba, [C@61bbe9ba, [C@61bbe9ba, [C@61bbe9ba]), как я могу напечатать каждый символ, хранящийся в ArrayList?

import java.util.ArrayList;
import java.util.List;

public class checkPermu {

  public static void main(String[] args) {
    String myString = "aabc";
    applyPermu(myString);
  }

  public static void applyPermu(String toCheck){
    char[] newString = toCheck.toCharArray();
    List listeFinale = new ArrayList();
    for(int i = 0 ; i < newString.length ; i ++){
      char temp = newString[0];
      newString[0] = newString[i];
      newString[i] = temp;
      listeFinale.add(newString);
      System.out.println(listeFinale);
    }
  }
}

1 Ответ

3 голосов
/ 26 сентября 2019

Прежде всего, не используйте необработанные типы для своего списка, пожалуйста. Измените:

List listeFinale = new ArrayList();

на:

List<char[]> listeFinale = new ArrayList<>();

Что касается вашегоактуальная проблема.Эти значения, которые вы видите, являются стандартными toString() выходами ваших внутренних символьных массивов.Вы можете перебрать свой список и вызвать для них метод java.util.Arrays.toString(char[]) следующим образом:

listeFinale.forEach(arr -> System.out.println(Arrays.toString(arr)));

Или, если вы хотите снова напечатать их как String, используйте new String(char[]):

listeFinale.forEach(arr -> System.out.println(new String(arr)));

Попробуйте онлайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...