首页 > 解决方案 > 从垂直数组中获取单个列表并水平存储它们

问题描述

我有一个一维字符串,因此n x 1每个字符串都是每行一列中的唯一数组,以 ArrayList 形式给出:

[x]
[y]
[z]

但是,我想知道在一般意义上如何在不知道数组或列表数量的情况下执行此操作。list.all(valueHere)因此,必须实施类似的东西。

预期输出 - 类似:

[x][y][z]

编辑:本质上,也许是一个 for 循环可以做到这一点:从循环中选择各个列表,可能是根据它们的长度,然后将它们并排粘贴或水平存储为列表。

也许需要一个空数组,它使用这些来填充它们:

//step 1
[x]
[y]
[z]

//step2
[x][y]
[z]

//step3
[x][y][z]

//second example

/empty array
[][][]
//list
[x]
[y]
[z]

//step 1

[x][][]

[y]
[z]

//step 2
[x][y][]

[z]

//step 3
[x][y][z]

我已经设法通过这样做获得了此列表中的第一个元素,尽管并非所有元素都将被替换:

String[] yourArr = new String[test.numInstances()];

for(int i = 0; i<test.numInstances();i++) {
    String  trueClassLabel = test.instance(i).toString(test.classIndex());
    s = new String[] {trueClassLabel};
    yourArr[i] = s[i];
    System.out.println(Arrays.deepToString(yourArr));
}          

输出:

【输,空,空,空,空,空,空,空,空,空,空,空,空,空】

标签: javaarraysstringmatrixweka

解决方案


经过大量阅读和利用@GhostCat 提供的见解后,我设法弄清楚了我需要什么。

我首先必须创建一个空的虚拟数组:

String[] submit = null;

连同另一个包含实例数长度的虚拟数组(或我之后的字符串长度)

String[] yourArr = new String[test.numInstances()];

然后创建一个 for 循环,将数据的类索引中的实例存储.arff到一个数组中。然后将该数组存储到 ampty 数组yourArr中,最后将此范围复制到另一个范围:

for(int i = 0; i<test.numInstances();i++) {
String  trueClassLabel = test.instance(i).toString(test.classIndex());
s = new String[] {trueClassLabel};
yourArr[i] = s[0];
submit = Arrays.copyOfRange(yourArr, 0, i);
}

然后将字符串打印为循环外的数组:

System.out.println(Arrays.toString(submit));

输出:

[输,输,输,平,赢,输,输,平,赢,赢,赢,赢,赢]


推荐阅读