2015-04-18 2 views
-1

Я ввожу данные из файла txt в набор из StringLists с использованием обработки. Теперь я хочу поставить StringLists в ArrayList, один за другим. Однако все StringLists входят в тот же индекс ArrayList, который составляет 0.StringList внутри ArrayList с использованием обработки

StringList lista = new StringList(); 
String [] listv; 
ArrayList <Via> listaVias = new ArrayList(); 
Via via= null; 

void setup() { 
    int contador = 0; 
    String lines [] = loadStrings("data.txt"); 
    Via ultimaVia = null; 
    for (String linha : lines) { 

     String[] params = split(linha, TAB); 
     float score = parseFloat(params[0]); 
     listaVias.add(via=new Via(score)); 
     for (int i=2; i<params.length; i++) { 
      via.append(params[i]); 
      //listaVias.add(via); 
     } 


     println(listaVias); 


     if (ultimaVia!=null && ultimaVia.isEqual(via)) { 
     } else { 
      if (via.size()>3) { 

       contador++; 

       if (contador==100) { 
        break; 
       } 
      } 
     } 


    ultimaVia = via; 
    } 
} 

Это мой класс Via

class Via extends StringList { 

    final float score; 

    Via(float score) { 
     super(); 
     this.score = score; 
    } 

    boolean isEqual(Via via) { 
     if (this.size() == via.size()) { 
      for (int i=1; i<via.size();i++) { 
       if(!via.get(i).equals(this.get(i))){ 
        return false; 
       } 
      } 
     } else { 
      return false; 
     } 
     return true; 
    } 
} 

ОБРАЗЕЦ TXT

0.999999999197 4 BAI2 SMAD2 SMAD4 SMAD3 
0.999999999197 4 GRK6 SMAD2 SMAD4 SMAD3 
0.999999999197 4 JUNB SMAD2 SMAD4 SMAD3 
0.999999999197 4 BZRAP1 SMAD2 SMAD4 SMAD3 
0.999999999197 4 RNPEPL1 SMAD2 SMAD4 SMAD3 
0.999999999197 4 SBF1 SMAD2 SMAD4 SMAD3 
0.999999999197 4 TRABD SMAD2 SMAD4 SMAD3 
0.999999999197 4 LDB1 SMAD2 SMAD4 SMAD3 
0.999999999197 4 VEGFB SMAD2 SMAD4 SMAD3 
0.999999999197 4 SKI SMAD2 SMAD4 SMAD3 
0.999999994595 3 SLC25A22 JUN EP300 
0.999999994595 3 S100A6 JUN EP300 
0.999999994595 3 FXYD2 JUN EP300 
0.999999994595 3 STK40 JUN EP300 
0.999999994595 3 HDAC7 JUN EP300 
0.999999994595 3 CLCN6 JUN EP300 
0.999999994595 3 PRDX2 JUN EP300 
0.999999994595 3 MYL6 JUN EP300 
0.999999994595 3 WDR82 JUN EP300 
0.999999994595 3 ADM JUN EP300 
0.999999994595 3 SNRPG JUN EP300 
0.999999994595 3 ZYX JUN EP300 
0.999999994402 4 SLC25A22 FOS JUN EP300 
0.999999994402 4 S100A6 FOS JUN EP300 
0.999999994402 4 FXYD2 FOS JUN EP300 
0.999999994402 4 STK40 FOS JUN EP300 
0.999999994402 4 HDAC7 FOS JUN EP300 

Println РЕЗУЛЬТАТ:

http://i.stack.imgur.com/0Xchu.png

+0

Предоставьте образец входного файла, чтобы лучше понять проблему. – rendon

+0

О, извините, мой плохой. Просто отредактировал его. он создает через stringLists с каждой строкой моего txt. Эта часть работает нормально. Проблема в том, что я не могу поместить каждый из этих строк в другой индекс ArrayList. – Almeida

+0

, когда вы делаете println (listaVia), что вы видите, ваш код выглядит хорошо, он выглядит не так, как если бы все было в индексе 0 – faljbour

ответ

0

Печать ArrayList в форме println(listaVias) приведет к тому, что список будет напечатан следующим образом: [item1, item2, item3]. Из внешнего вида вашего примера println каждый элемент добавляется в список правильно.

println(listaVias.get(2)) будет вызвать IndexOutOfBoundsException: Index:2, Size1 быть выброшен на первой итерации цикла for (String linha : lines), потому что на этом этапе, есть только один пункт в списке.

Вы сможете получить каждый элемент из индекса после заполнения списка.

Смежные вопросы