gpt4 book ai didi

Java - 根据后缀从列表创建子列表

转载 作者:行者123 更新时间:2023-12-01 07:04:05 26 4
gpt4 key购买 nike

我正在尝试根据后缀从列表创建子列表。

public class Test {

public static void main(String args[]) {
List<List<String>> subList = new ArrayList<List<String>>();

List<String> myList = new ArrayList<String>();
myList.add("Text_1");
myList.add("XYZ_3");
myList.add("ABC_1");
myList.add("Text_2");
myList.add("Text_3");
myList.add("XYZ_1");
myList.add("XYZ_2");
myList.add("ABC_2");

for (String item : myList) {
List<String> tempList = new ArrayList<String>();
String suffix = item.substring(item.lastIndexOf("_"));
tempList.add(item);
for (String value : myList) {
if (value.endsWith(suffix) && !tempList.contains(value)) {
tempList.add(value);
}
}
System.out.println(tempList);
}
}
}

我期待如下

// Text_1, ABC_1, XYZ_1
// Text_2, ABC_2, XYZ_2
// Text_3, XYZ_3

但实际情况是

[Text_1, ABC_1, XYZ_1]
[XYZ_3, Text_3]
[ABC_1, Text_1, XYZ_1]
[Text_2, XYZ_2, ABC_2]
[Text_3, XYZ_3]
[XYZ_1, Text_1, ABC_1]
[XYZ_2, Text_2, ABC_2]
[ABC_2, Text_2, XYZ_2]

感谢任何帮助。谢谢

最佳答案

尝试使用 TreeMap

import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;

public class QuickTester {

public static void main(String[] args) {

List<String> myList = new ArrayList<String>();
myList.add("Text_1");
myList.add("XYZ_3");
myList.add("ABC_1");
myList.add("Text_2");
myList.add("Text_3");
myList.add("XYZ_1");
myList.add("XYZ_2");
myList.add("ABC_2");

TreeMap <String, ArrayList<String>> map = new TreeMap<>();

for (String item : myList) {

// contents[0] is value, contents[1] is suffix
String [] contents = item.split("_");

if(!map.containsKey(contents[1])) {
ArrayList<String> values = new ArrayList<>();
values.add(contents[0]);
map.put(contents[1], values);
}
else {
map.get(contents[1]).add(contents[0]);
}
}

for(String key : map.keySet()) {
System.out.println("Key: " + key);
System.out.print("Values: ");
for(String value : map.get(key)) {
System.out.print(value + " ");
}
System.out.println();
}
}
}

输出:

Key: 1
Values: Text ABC XYZ
Key: 2
Values: Text XYZ ABC
Key: 3
Values: XYZ Text

关于Java - 根据后缀从列表创建子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30997652/

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