2013-09-24 8 views
0

У меня есть метод, как следующий -:Как эффективно использовать ListIterator?

public void apply(ArrayList<String> tokenStream); 

, в котором я принимаю список строковых лексем, как следующее - tokenStream = («Я хороший», «Я плохой»), и я хочу чтобы иметь возможность конвертировать эти токены в список tokenStream в отдельные токены и добавлять их обратно в один и тот же список таким образом, что после завершения выполнения метода я должен иметь - tokenStream = («I», «am», «good», «Я», «Я», «Плохо»), Как я могу использовать ListIterator для решения этой проблемы? В основном я хочу, чтобы иметь возможность разделить отдельные строки в tokenStream и добавить их обратно к одному и тому же объекту потока с помощью набора ListIterators и удаления методов, как это сделать?

Это именно то, что я пытаюсь сделать

public void apply(tokenstream stream){ 

     if (stream != null) { 

      ArrayList<String> splittedTokens = new ArrayList<>(); 

      while (stream.hasNext()) { 

       String token = stream.next(); 

       String[] splitTokens = token.split("\\s+"); 

       for (int i = 0; i < splitTokens.length; ++i) 
        splittedTokens.add(splitTokens[i]); 
      } 

      // set the stream to hold this new formed stream with tokens 
      stream.set((String[]) splittedTokens.toArray()); 
     } 
    } 

Я пытаюсь удалить пробелы из маркеров в маркере объекта потока, который внутренне использует список массив для хранения маркеров и это tokenstream класс имеет набор методов, дополняющих классы класса ListIterator, такие как set и remove, так как я могу это реализовать?

+0

Почему вы заботитесь об использовании 'ListIterator' ? что ты уже испробовал? Поместите некоторый код. –

+0

okk lemme сообщение точная вещь для вас – AnkitSablok

+0

@PhilippReichart: любезно посмотрите на объяснение сейчас. – AnkitSablok

ответ

1

Для решения этой задачи лучше всего, кажется, чтобы создать список временной итерации tokenStream расщепляющих маркеров и добавить их в список темпа, то ясно tokenStream и addAll от температуры

+0

, поэтому это должно означать что-то вроде этого, создайте tempTokenList разделенных токенов и затем добавьте его в исходный список в следующим образом: tokenStream.set (tempTokenList), это то, что вы говорите? – AnkitSablok

+0

@AnkitSablok Право. Вызов 'tokenStream.clear();' follow to_ tokenStream.addAll (tempTokenList); ' – joescii

+0

Что такое tokenStream.clear() и addAll() – AnkitSablok

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