Я пытаюсь написать метод, который получает список строк, и возвращает подмножества, содержащие n элементов. Вот мой код:Проблема с списками Java
import Pack;
import java.util.List;
import java.util.ArrayList;
public class Testtt{
public static void main(String[] args) {
List<String> input = new ArrayList<String>();
input.add("a");
input.add("b");
input.add("c");
input.add("d");
input.add("e");
System.out.println(subset(input, 3));
}
public static List<List<String>> subset(List<String> inputlist, int n) {
List<List<String>> output = new ArrayList<List<String>>();
List<String> temp = new ArrayList<String>();
for (int i = 0; i < n; i++) {
temp = inputlist;
System.out.println("Temp = " +temp);
temp.remove(i);
output.add(temp);
}
return output;
}
}
Выход был содержащий только два элемента я решил отладки и это консольный вывод:
Temp = [a, b, c, d, e]
Temp = [b, c, d, e]
Temp = [b, d, e]
[[b, d], [b, d], [b, d]]
Я написал темп = список в начале цикла, но он остается прежним. Почему это происходит?
Добро пожаловать в StackOverflow. Вопросы о проблемах в коде ** должны включать код **, а не ссылку на внешний сайт, такой как pastebin. Если код слишком длинный, вы должны разрезать его только на основную часть, которая показывает проблему. Пожалуйста, прочитайте [как спросить] (http://stackoverflow.com/help/how-to-ask) и [как создать MCVE] (http://stackoverflow.com/help/mcve). – RealSkeptic
У вас есть вопросы о коде, который вы опубликовали? –