-3

我想将一个数组列表拆分为较小的单独列表,每个列表中有 6 个元素。例如,用户将输入以下信息:

港币新元 18:00 2 9:00 400

中国港币 17:00 3 6:00 500

RRK SSK 19:00 1 7:00 300

这些信息将存储到一个数组列表中。然后我想分离这个arraylist,这样信息就会是这样的:

清单一:HKY SGP 18:00 2 9:00 400

名单2:CHN HKY 17:00 3 6:00 500

名单3:RRK SSK 19:00 1 7:00 300

这是将此列表与另一个数组列表进行比较并提取某些信息。

任何帮助表示赞赏,如果问题不清楚,请通知我。

谢谢!

4

2 回答 2

1

n您可以使用 遍历元素组中的数组列表subList(),然后将它们添加到列表列表中:

List<List<String>> output = new ArrayList<List<String>>();
for (int i=0; i < arrayList.size(); i+=6) {
    List<String> group = arrayList.subList(i, i+6);
    output.add(new ArrayList<String>(group));
}

最后,output将包含一个包含六元素列表的列表。这回答了这个问题,但实际上,为什么将所有数据都作为列表处理?将每组六个值封装为一个类中的属性似乎是个好主意。

于 2013-09-12T15:30:42.613 回答
0

我认为你想要一个二维数组和使用 String#split() 的组合。以下示例应该让您非常接近您正在寻找的内容。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class SplitString
{
    private static List<String> listOfFullStrings = new ArrayList<String>();

    static
    {
        listOfFullStrings.add("HKY SGP 18:00 2 9:00 400");
        listOfFullStrings.add("CHN HKY 17:00 3 6:00 500");
        listOfFullStrings.add("RRK SSK 19:00 1 7:00 300");
    }

    public static void main(String[] args)
    {
        String[][] parsedArrays = new String[listOfFullStrings.size()][6];

        for (int i = 0; i < listOfFullStrings.size(); i++)
        {
            parsedArrays[i] = listOfFullStrings.get(i).split(" ");
        }

        for (int i = 0; i < parsedArrays.length; i++)
        {
            System.out.println("List " + i + " :" + Arrays.asList(parsedArrays[i]));
        }
    }
}

输出如下:

List 0 :[HKY, SGP, 18:00, 2, 9:00, 400]
List 1 :[CHN, HKY, 17:00, 3, 6:00, 500]
List 2 :[RRK, SSK, 19:00, 1, 7:00, 300]

注意:我转换为列表只是为了在打印时获得更好的格式。

于 2013-09-12T15:37:49.273 回答