要有效地删除包含在LinkedList中其他字符串中的字符串,我们需要遵循以下步骤:
以下是一个Java示例代码,展示了如何实现上述逻辑:
import java.util.LinkedList;
import java.util.HashSet;
public class StringRemoval {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("app");
list.add("banana");
list.add("ban");
list.add("orange");
removeContainedStrings(list);
// 输出处理后的LinkedList
for (String s : list) {
System.out.println(s);
}
}
public static void removeContainedStrings(LinkedList<String> list) {
HashSet<Integer> lengths = new HashSet<>();
for (String s : list) {
lengths.add(s.length());
}
for (int i = 0; i < list.size(); i++) {
String current = list.get(i);
for (int length : lengths) {
if (current.length() < length && ((LinkedList<String>) list).stream().anyMatch(s -> s.contains(current))) {
list.remove(current);
i--; // 由于移除了元素,需要调整索引
break;
}
}
}
}
}
通过这种方法,我们可以有效地删除LinkedList中所有被其他字符串包含的字符串。
领取专属 10元无门槛券
手把手带您无忧上云