使用java中的公共表达式将数组列表拆分为另一个数组列表

使用java中的公共表达式将数组列表拆分为另一个数组列表,java,arrays,Java,Arrays,我有一个名为temp的java数组列表,其中包含以下内容: temp [abc,123,456,678,abc,xyz,tyh,479,572,4891,asx,abc,4r65,abc,xg,5684] 现在我想将上面的数组拆分为另一个数组列表,如下所示: newtemp[0]=[abc,123,456,678] newtemp[1]=[abc,xyz,tyh,479,572,4891,asx] newtemp[2]=[abc,4r65] newtemp[3]=[abc,xg,5684]

我有一个名为temp的java数组列表,其中包含以下内容:

temp [abc,123,456,678,abc,xyz,tyh,479,572,4891,asx,abc,4r65,abc,xg,5684]
现在我想将上面的数组拆分为另一个数组列表,如下所示:

newtemp[0]=[abc,123,456,678]
newtemp[1]=[abc,xyz,tyh,479,572,4891,asx]
newtemp[2]=[abc,4r65]
newtemp[3]=[abc,xg,5684]

我想使用“abc”作为公共断路器拆分阵列。我怎样才能做到这一点?这对我来说似乎很复杂。我无法建立它的逻辑。

当我在我得到的项目的
ArrayList
上运行
toString()
时,我看到了这一点

Make these variables as static
private static int index = 0;
private static int count = 0;

//logic 
for (int i = 0; i < temp.size(); i++) {
    if (temp.get(i).equals(temp.get(index)) && i > 0) {
        System.out.println(temp.subList(index, count));
        index = i;
    }
    count++;
}
System.out.println("last list =  " + temp.subList(index, count));
[abc, 123, 456, 678, abc, xyz, tyh, 479, 572, 4891, asx, abc, 4r65, abc, xg, 5684]
这就是我决定处理数据的方式,这使我相信最终结果是有
列表
,外部列表的每个元素都有一个以“abc”开头的内部子列表。这是通过一个在temp中迭代的
for
循环来实现的,只要循环运行在“abc”上,就会创建一个新的子列表。你会看到我的列表以[“aaa”,“123”]开头,这些项目会被跳过,直到我们遇到第一个“abc”


temp
newtemp
的类型是什么,以及
newtemp
的尺寸是什么,我不清楚您是否想在
newtemp[index]中插入数组
或Strings另一种提问逃跑的情况每个用户在提出问题后都必须理解您必须逗留几分钟以消除您的问题疑虑这只会帮助您获得更多答案。如果原始列表不是以“abc”开头,则这不起作用在以下几行中,我得到了错误:newTemp.add(newarraylist());找不到添加newTemp.get(newTemp.size()-1).add(tmp)的合适方法;在中找不到符号和(列表:newTemp){字符串无法转换为list@HelloMan您必须在问题中发布您的代码。我的代码经过测试并正常工作。此外,如果您使用的是我提供的代码,您是否有必要的导入行来使用List、ArrayList和Arrays.asList?导入java.util.List;import java.util.ArrayList;import java.util.Arrays;我简化了我的问题并发布了它。真正的问题太复杂了,无法理解。代码太复杂了,因为它是web应用程序的一部分。@HelloMan请确保您具有所需的导入。请参阅我更新的响应。您的代码正在工作。我通过修改代码使它工作根据我的web应用程序,我只需要更改一些小的东西,比如列表名和其他东西,而逻辑部分什么都不做。谢谢!
[abc, 123, 456, 678, abc, xyz, tyh, 479, 572, 4891, asx, abc, 4r65, abc, xg, 5684]
package stackoverflow;

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

public class StackOverflow {

    public static void main(String[] args) throws Exception {
        List<String> temp = new ArrayList(Arrays.asList("aaa", "123", "abc", "123", "456",
                "678", "abc", "xyz", "tyh", "479", "572", "4891", "asx", "abc",
                "4r65", "abc", "xg", "5684"));
        List<List<String>> newTemp = new ArrayList();

        for (String tmp : temp) {
            // Start a new sublist
            if (tmp.contentEquals("abc")) {
                newTemp.add(new ArrayList());
            }

            // Add to the newest sublist
            if (newTemp.size() > 0) {
                newTemp.get(newTemp.size() - 1).add(tmp);
            }
        }

        for (List<String> list : newTemp) {
            System.out.println(list);
        }
    }
}
[abc, 123, 456, 678]
[abc, xyz, tyh, 479, 572, 4891, asx]
[abc, 4r65]
[abc, xg, 5684]