将arraylist拆分为6个元素

时间:2013-09-12 15:28:24

标签: java arraylist

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

HKY SGP 18:00 2 9:00 400

CHN HKY 17:00 3 6:00 500

RRK SSK 19:00 1 7:00 300

这些信息将存储在arraylist中。然后我想分开这个arraylist,以便信息将是这样的:

清单1: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

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

感谢任何帮助,如果问题不明确,请告知我。

谢谢!

2 个答案:

答案 0 :(得分: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将包含六元素列表的列表。这回答了这个问题,但实际上,为什么要将所有数据作为列表处理?将每组六个值封装为一个类中的属性似乎是个好主意。

答案 1 :(得分: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]

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