打印ArrayList的每个元素并在String java中使用它

时间:2017-08-08 13:15:43

标签: java

我想获取ArrayList的每个元素并使用它来创建一个String:

  1. 包含与ArrayList和
  2. 元素一样多的单词
  3. 为每个单词打印ArrayList的int值。
  4. 为了更清楚,我想打印一个如下所示的字符串:

    System.out.println(result);
    element(0), element(1), element(2), element(3)
    

    不幸的是,我只从ArrayList获取最后一个Integer的值,但是'元素的数量是'单词是正确的,所以我的实际结果字符串看起来像这样:

    System.out.println(result);
    element(3), element(3), element(3), element(3)
    

    ArrayList只有4个元素:

    [0, 1, 2, 3]
    

    使用以下代码生成此错误的字符串:

    List<Integer> intList = new ArrayList<Integer>();
    int intValue;
    String result;
    
    int n = intList.size();
    for (int i=0; i < n; i++) {
        intValue = intList.get(i);
        result = String.join(", ", java.util.Collections.nCopies(n,  "element("+intValue+")"));
    }
    

    那么如何使用ArrayList的所有值创建正确的String?

1 个答案:

答案 0 :(得分:2)

下面:

for ... {
  result = String.join(...)
}

在你的循环中,你重新分配,在每次迭代过程中将字符串连接到你的结果。换句话说:在循环(n)中,你丢弃在循环中创建的内容(n-1)。

尝试使用+ =代替。或者只是选择:

StringBuilder builder = new StringBuilder;
for ... {
  builder.append(...
}
String finalResult = builder.toString();

代替。

使用构建器:

  • 让您的意图更加明确(您打算最终构建一个字符串)
  • 给出了一些轻微的性能提升(鉴于&#34;小规模&#34;这里并不重要。)