Список конвертации в ArrayList - PullRequest
0 голосов
/ 12 июля 2020

Итак, я создаю метод, который выглядит так:

public static ArrayList<int[]> permuteArray(int[] array)

У меня есть вспомогательный метод, который выглядит так:

  public static List<List<Integer>> permuteArray(List<List<Integer>> list, List<Integer> result, int [] arr) {
    if(result.size() == arr.length){
        list.add(new ArrayList<>(result));
    }
    else{
        for(int i = 0; i < arr.length; i++){
            if(result.contains(arr[i]))
            {
                continue;
            }
            result.add(arr[i]);
            permuteArray(list, result, arr);
            result.remove(result.size() - 1);
        }

    }
    return list;
}

У меня есть эта строка: List<List<Integer>> permute = permuteArray(list, new ArrayList<>(), array); Но я хочу преобразовать List<List<Integer>> в ArrayList<int[]>. Возможно ли, чтобы вспомогательный метод вернул ArrayList или если может оригинальный способ?

Ответы [ 3 ]

4 голосов
/ 12 июля 2020

Попробуйте следующее:

List<List<Integer>> lst = new ArrayList<>();
lst.add(List.of(1, 2, 3));
lst.add(List.of(4, 5, 6));
lst.add(List.of(7,8,9));

ArrayList<int[]> newList = lst.stream()
        .map(x -> x.stream().mapToInt(k -> k).toArray())
        .collect(Collectors.toCollection(ArrayList::new));
2 голосов
/ 12 июля 2020

Хотя изменение исходного метода может быть лучшим способом для go, это ответ на заголовок, который: «Преобразование List<List<Integer>> в ArrayList<int[]>»

List<List<Integer>> original = ...;
ArrayList<int[]> arraylist = original.stream()
    .map(sub -> sub.stream().mapToInt(i -> i).toArray())
    .collect(Collectors.toCollection(ArrayList::new));
0 голосов
/ 12 июля 2020

Вы также можете попробовать использовать приведенное ниже, чтобы преобразовать List в ArrayList ,

list.stream().map(x -> x.stream().mapToInt(Integer::intValue).toArray())
                .collect(Collectors.toCollection(ArrayList::new));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...