【问题标题】:How to use ListIterator effectively?如何有效地使用 ListIterator?
【发布时间】:2023-04-03 17:12:01
【问题描述】:

我有一个类似下面的方法-:

public void apply(ArrayList<String> tokenStream);

我接受如下字符串标记列表 - tokenStream = ("I am good" , "I am bad") ,并且我希望能够将 tokenStream 列表中的这些标记转换为单独的标记和以在方法执行结束后我应该拥有的方式将它们添加回同一个列表 - tokenStream = ("I" , "am" ,"good" , "I" , "am" , "bad"), How我可以使用 ListIterator 来解决这个问题吗?基本上我希望能够拆分 tokenStream 中的各个字符串,并使用 ListIterators 的 set 和 remove 方法将它们添加回同一个流对象,我该怎么做?

这正是我想要做的事情

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());
        }
    }

我正在尝试从令牌流对象中的令牌中删除空格,该对象在内部使用数组列表来存储令牌,并且此令牌流类具有一组方法来补充 ListIterator 类的方法,例如 set 和 remove,那么如何我应该去实现它吗?

【问题讨论】:

  • 你为什么关心使用ListIterator?你都尝试了些什么?贴一些代码。
  • okk lemme 为您发布确切的内容
  • @PhilippReichart :现在请看解释。
  • 您当前的代码如何不起作用? tokenstreamListIterator 吗?如果是这样,我怀疑您是否可以使用ListIterator.set() 实现您正在尝试的内容,它仅“替换下一个或上一个返回的最后一个元素”,因此似乎没有办法向迭代器添加比原来更多的项目.如果tokenstreamArrayList,请在下面使用 Evgeniy 的答案。
  • tokenstream 类有一个 set 方法,该方法在令牌流对象使用的数组列表内部使用 set 方法

标签: java regex string iterator


【解决方案1】:

对于这个任务,最好的方法似乎是创建一个临时列表,迭代 tokenStream 拆分令牌并将它们添加到临时列表中,然后从 temp 中清除 tokenStream 和 addAll

【讨论】:

  • 所以这应该是这样的意思,然后创建一个拆分令牌的 tempTokenList,然后按以下方式将其添加到原始列表中: tokenStream.set(tempTokenList) ,是你在说什么吗?
  • @AnkitSablok 对。拨打tokenStream.clear();,然后拨打tokenStream.addAll(tempTokenList);
  • ArrayList tokenStream: tokenStream.clear() - 移除所有元素; tokenStream.addAll(splittedTokens);
猜你喜欢
  • 2017-09-12
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 2011-07-09
  • 2015-07-01
  • 2012-03-16
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多