java - 我的 2D ArrayList 输出给出累积值?

标签 java arraylist

我需要一些帮助。这里的实际情况是,我编写的程序将读取多个文本文档,并且每个文本文档都有不同的字数。我想将这些单词保留到 2D ArrayList 中,因为它根据当前现有的文本文档数量和每个文本文档中的单词计数提供动态大小。

但是,经过多次测试,给出的输出并不符合我的预期。为了让事情更简单,我将这个示例代码作为引用。我如何使用 2D ArrayList 与我在实际案例中使用的方式相同。

    ArrayList<List<String>> twoDWords = new ArrayList<List<String>>();
    List<String> oneDword = new ArrayList<String>();

    String word = "";
    String[] words = new String[5];

    System.out.println("Want like these(Using 2D ArrayList):");
    for(int i = 0; i< 5; i++)
    {
        System.out.print("Array - "+i +": ");
        word += "myArray ";
        words[i] = word;
        System.out.println(word);
    }

    System.out.println("\nBut Get these output:");
    for(int i = 0; i< 5; i++)
    {
        oneDword.add(words[i]);
        twoDWords.add(oneDword);
        //oneDword.clear();
    }

    for(int i = 0; i< twoDWords.size(); i++)
    {
        System.out.print("Array - "+i +": ");
        for(int j = 0; j< twoDWords.get(i).size(); j++)
        {
            System.out.print(twoDWords.get(i).get(j)+" ");
        }
        System.out.println("");
    }

这是输出: enter image description here

输出看起来只是重复给出最新的累积值。正如您在代码中看到的,我还尝试使用clear()方法来重置数组,但它随后给出了空值。

我希望有人能帮助我解决这个问题。先谢谢了~

最佳答案

添加到 Christopher 解决方案中,您应该使用 foreach 循环,因为它更易于阅读:

for(int i = 0; i< 5; i++)
{
    oneDword.add(words[i]);
    twoDWords.add(oneDword);
    oneDword = new ArrayList<String>(); // --> You need this since 'oneDword' contains the previous values as well and it'll keep adding new values to this list.
    //oneDword.clear();
}

for(List<String> al: twoDWords) {
  for(String s: al) {
    System.out.println(s);
  }
}

关于java - 我的 2D ArrayList 输出给出累积值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39521759/

相关文章:

java - 在android中创建一个空的ArrayList

android - 为什么我不能在 FacebookCallback 之外使用我的 ArrayList 变量

java - 如何根据第一个微调器中所做的选择从数据库中过滤第二个微调器值?

java - 如何按日期字段对集合进行排序?

Java在arraylist中排序数字

java - 如何在java中排序后列出数字

java - JPA Commit 与 Oracle 的问题

java - 更新Java中的arraylist方法

java - 如何将Arraylist数据转换为Vector类型?

java - Android studio 奇怪警告