我在 java 中有一个名为 temp 的数组列表,其中包含以下内容:
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”作为通用断路器来拆分数组。我怎样才能实现这个目标?对我来说这似乎很复杂。我无法建立它的逻辑。
最佳答案
看到当我在 toString()
项目上运行 ArrayList
时,我得到了
[abc, 123, 456, 678, abc, xyz, tyh, 479, 572, 4891, asx, abc, 4r65, abc, xg, 5684]
这就是我决定处理数据的方式,这让我相信最终结果是有 List<List<String>>
并且外部列表的每个元素都有一个以“abc”开头的内部子列表。这是通过一个迭代 temp 的 for
循环来完成的,并且每当循环运行到“abc”时就会创建一个新的子列表。您会看到我的列表以 ["aaa", "123"] 开头,并且这些项目会被跳过,直到我们遇到第一个“abc”。
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]
关于java - 使用java中的通用表达式将数组列表拆分为另一个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30549345/