Java 在列中布局字符串集合

Java 在列中布局字符串集合,java,collections,Java,Collections,我有一个字符串列表,希望在HTML表中显示这些字符串,这些字符串尽可能均匀地分布在指定数量的列中 public String toHtmlTable(Collection<String> values, int columns) { // TODO } 做这件事的好方法是什么?假设您的表有n列,并且您有x个字符串,您最终需要 m=天花板(x/n)行。因此,当输出一行html时,只需相应地偏移变量。您的第一行输出应该如下所示: A E I B F J

我有一个字符串列表,希望在HTML表中显示这些字符串,这些字符串尽可能均匀地分布在指定数量的列中

public String toHtmlTable(Collection<String> values, int columns) {
    // TODO
}

做这件事的好方法是什么?

假设您的表有
n
列,并且您有
x
个字符串,您最终需要

m=天花板(x/n)
行。因此,当输出一行html时,只需相应地偏移变量。您的第一行输出应该如下所示:

A    E    I
B    F    J
C    G
D    H

(i.e. "<table><tr><td>A</td><td>E</td><td>I</td></tr>...</table>")
arr[0]    arr[m]        arr[2m]        arr[3m]      ....     arr[nm]
arr[i]    arr[m+i]      arr[2m+i]      arr[3m+i]    ....     arr[nm+i]
接下来的几行是:

arr[1]    arr[m+1]      arr[2m+1]      arr[3m+1]    ....     arr[nm+1]
arr[2]    arr[m+2]      arr[2m+2]      arr[3m+2]    ....     arr[nm+2]
....
arr[m-1]  arr[2m-1]     arr[3m-1]      arr[4m-11]   ....     arr[(n+1)m-1]
您可以找出如何编写嵌套循环以输出此结果,这并不太困难

每行的表示方式如下:

A    E    I
B    F    J
C    G
D    H

(i.e. "<table><tr><td>A</td><td>E</td><td>I</td></tr>...</table>")
arr[0]    arr[m]        arr[2m]        arr[3m]      ....     arr[nm]
arr[i]    arr[m+i]      arr[2m+i]      arr[3m+i]    ....     arr[nm+i]
随着
i
0
转到
(m-1)


我希望这有帮助。

一些代码可能会提供一些帮助:

我有点懒,有两件事还没做完:

  • 未添加
    标记。这很容易
  • 未处理空的
代码:

public void tt(){
//您可以忽略ImmutableList的内容,它只准备字符串列表,仅此而已。
最终列表l=不可变列表,共有(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”);
最终整数=3;
最终整数大小=l.大小();
最终整数n=尺寸/列;
最终StringBuffer sb=新StringBuffer(“”);

对于(int i=0;i)它为什么需要是一个(单个)表?这将导致在选择文本或使用tab键将焦点传递到下一个单元格时出现不直观的行为。每个项目都与其他项目无关(实际上是一个链接),因此无需支持选择文本。我将使用
tabindex
确保选项卡工作正常。