gpt4 book ai didi

java - 如何将一个列表分成两个列表?

转载 作者:行者123 更新时间:2023-12-01 09:35:22 29 4
gpt4 key购买 nike

here is a big list ,I want to separate this list into two lists according to "A7750" and "A7741" 我也尝试编写代码来实现它但失败了

public class Test {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<String>();
ArrayList<String> list1=new ArrayList<String>();
list.add("A7750 0.0 28.30");
list.add("A7750 0.3 28.30");
list.add("A7741 0.0 31.40");
list.add("A7741 0.1 31.40");
Boolean tag=true;
for(int i=0;i<list.size();i++){
if(i>=1){
String str[]=list.get(i).split("\t");
String str1[]=list.get(i-1).split("\t");
if(tag){
list1.add(list.get(i-1));
if(!str[0].equals(str1[0])){
for(String t:list1){
System.out.println(t);
}
list1.clear();
System.out.println("...");
}
}
}

}



}
}

最佳答案

您可以使用String.startsWith检查列表中的每个字符串是否以您想要的开头,并将其添加到相应的新列表中。

for(String element: bigList){
if(element.startsWith("A7750")){
list1.add(element);
}
else if(element.startsWith("A7741")){
list2.add(element);
}
}

编辑:

如果您有数千行,则可以使用 Map 来存储列表,如下所示。

Map<String,List<String>> map=new HashMap<>();
for(String element: bigList){
// Split each element by space.
String parts=element.split(" ");

// if the map contains your key ex: "A7741", add the string to the corresponding list.
if(map.containsKey(parts[0])){
List<String> list = map.get(parts[0]);
list.add(element);
}else{
// create a new list and add it to the map with a new key.
List<String> list = new ArrayList<>();
list.add(element);
map.put(parts[0],list);
}
}

最后, map 将有一组列表,其中每个条目的 key 是其元素所在的字符串。

我假设您的字符串始终具有类似于 A7750 0.0 28.30

的格式

关于java - 如何将一个列表分成两个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39011281/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com