многомерный массив не может вставить другие списки массивов внутри - PullRequest
0 голосов
/ 05 марта 2012

Я пытаюсь создать многомерный массив. но это не добавление это мой код

вот инициализация

     public class BinList {

private ArrayList<Garbage> GarbageList;
private int[] PenaltyArray = new int[10];
private ArrayList BoostList;

это конструктор

public BinList() {
    BoostList = new ArrayList<Integer>();
}

это метод, этот метод принимает два параметра: первый - путь к файлу, а второй - цикл от 1 до 10. поэтому я читаю файл и отправляю информацию о каждой строке с номером цикла другому методу создайте arraylist (ArrayList), и он работает нормально, поэтому, когда этот метод будет выполнен и весь файл будет прочитан, я вставлю arraylist (ArrayList) в arraylist (ArrayList BoostList), но в этом массиве нет новых значений. я делаю что-то не так здесь? если вам нужен код, скажите мне

     public void ReadLine(String filePath, int Container) {
    try {
        File file = new File(filePath);
        Scanner scan = new Scanner(file);
        GarbageList = new ArrayList<Garbage>();
        while (scan.hasNextLine()) {
            String readLine = scan.nextLine();

            if (readLine != null) {

                getSplitLinesOrders(readLine, Container);
            }
        }

        ((ArrayList) BoostList.get(Container)).add(GarbageList);


    } catch (Exception e) {
    }
} 

Ответы [ 2 ]

2 голосов
/ 05 марта 2012

Вы пытаетесь получить ArrayList из BoostList:

((ArrayList) BoostList.get(Container)).add(GarbageList);

, но вы никогда ничего не добавляете в BoostList, поэтому это всегда будет неудачным.

Вы перехватываете исключения, но проглатываете их молча (Вы не печатаете ошибку), поэтому эта проблема скрыта.

1 голос
/ 05 марта 2012

Ваш многомерный ArrayList странный. Рассматривали ли вы использовать Map?

Или, в вашем случае, вы, вероятно, должны использовать гуаву Multimap. Вот информационная страница , которая объясняет понятия.

...