У меня есть следующий код:Spliting ArrayList в 2D ArrayList
for (int i = 0; i < costs.size(); i++){
System.out.println(twoDArrayList);
for (int j = 0; j < cities.size(); j++){
if (i==0 || i%cities.size() != 0){
twoDArrayList.get(j).add(costs.get(i));
}
}
}
Предполагается разбить ArrayList (затраты) и положить значения в 2D ArrayList (twoDArrayList). Это почти работает, за исключением того, что код просто помещает одни и те же значения в каждый массив ArrayList в twoDArrayList. Вот результат:
begin execution
[Seattle, NewOrleans, LosAngeles, Tucson, Chicago, Miami, Omaha]
[[], [], [], [], [], [], []]
[[0], [0], [0], [0], [0], [0], [0]]
[[0, 2706], [0, 2706], [0, 2706], [0, 2706], [0, 2706], [0, 2706], [0, 2706]]
[[0, 2706, 1136], [0, 2706, 1136], [0, 2706, 1136], [0, 2706, 1136], [0, 2706, 1136], [0, 2706, 1136], [0, 2706, 1136]]
...etc.
мне нужно двигаться так, что ArrayList является:
[0][2706][1136][etc...]
Спасибо!
Вот полный код:
private static ArrayList<String> cities;
private static ArrayList<Integer> costs;
private static ArrayList<ArrayList<Integer>> twoDArrayList;
public TSP(Scanner inFile) {
cities = new ArrayList<String>();
costs = new ArrayList<Integer>();
String newCities;
newCities = (inFile.nextLine());
String[] stringArray = newCities.split(" ");
for (int i = 0; i < stringArray.length; i++){
cities.add(stringArray[i]);
}
System.out.println(cities);
twoDArrayList = new ArrayList<ArrayList<Integer>>();
for (int i = 0; i < cities.size(); i++){
twoDArrayList.add(new ArrayList<Integer>());
}
while (inFile.hasNextInt()){
int newCost = inFile.nextInt();
costs.add(newCost);
}
for (int i = 0; i < costs.size(); i++){
System.out.println(twoDArrayList);
for (int j = 0; j < cities.size(); j++){
if (i==0 || i%cities.size() != 0){
twoDArrayList.get(j).add(costs.get(i));
}
}
}
System.out.println(twoDArrayList.get(0).get(0));
System.out.println(twoDArrayList.get(0).get(1));
System.out.println(twoDArrayList.get(0).get(2));
System.out.println(twoDArrayList.get(2).get(0));
System.out.println(twoDArrayList.get(2).get(1));
System.out.println(twoDArrayList.get(2).get(2));
}
}
Я действительно не понимаю, что находится в первоначальном arraylist, и то, что должно быть в 2D arraylist, зная типы (инициализация списков), было бы неплохо. – EpicPandaForce
Я отредактировал оригинальный вопрос. –
Просьба показать следующее: оригинальное содержимое архиватора; Ожидаемый результат. –