如何格式化列表中元素的打印(java)?

ddarikpa  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(386)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
我想打印列表的元素,使其看起来像:
要素1
要素2
...
第N页。元素n
我如何使用system.out.printf或system.out.println来实现这一点?

vxf3dgd4

vxf3dgd41#

你可以用println作为following:-

for (int i=0; i<list.size(); i++) {
    System.out.println((i+1) +" " +list.get(i));
  }
nbysray5

nbysray52#

for (int n=0; n<list.size(); n++)
   System.out.printf("%d.  %s %n", n+1, list.get(n));

int n = 0;
for (SomeType el : list) 
     System.out.printf("%d.  %s %n", ++n, el);

在这两种情况下,方法都是“一次处理一个元素”列表,然后为该元素构造输出行。i、 例如,不要考虑“打印列表”,而是考虑从列表中打印一个元素。
然后,对于每一行,您需要知道(1)元素的编号,(2)元素的值。这两种方法展示了遍历列表的不同方法——计数或使用“for each”迭代器。在第二种情况下,您需要将计数与迭代分开管理。
我想你可以阅读printf格式,我不需要解释这部分。
如果列表是一个arraylist,我希望两者在性能上大致相同。对于linkedlist来说,第一个列表的效率要低一些,如果你有非常大的列表,你会注意到。但是第一个要写得简单一点。
测试用例编码并运行:

import java.util.List;
import java.util.ArrayList;
class P {
  public static void main(String[] args) {
    List<String> l = new ArrayList<>();
    l.add("fee"); l.add("foe"); l.add("fie");
    int n = 0;
    for (String el : l)
       System.out.printf("%d. %s %n", ++n, el);
  }
}

输出:

1. fee  
2. foe  
3. fie

相关问题