用java 帮我写算法:类型为List<String>的集合tempResult中有n个元素,请找出两个以上的元素集合有哪些,统计到List<String>类型的result中
时间: 2024-12-12 12:29:11 浏览: 12
在Java中,我们可以使用哈希集合(如HashSet)来帮助解决这个问题。以下是通过遍历`tempResult`并检查元素是否已经在`result`中来实现的一个简单算法:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> tempResult = new ArrayList<>();
// 初始化tempResult
List<List<String>> result = findDuplicates(tempResult);
// 打印结果
for (List<String> duplicate : result) {
System.out.println("Duplicate elements: " + duplicate);
}
}
private static List<List<String>> findDuplicates(List<String> input) {
Set<String> seen = new HashSet<>();
List<List<String>> duplicates = new ArrayList<>();
for (String element : input) {
if (!seen.add(element)) { // 如果元素已经存在于seen中,说明找到了重复
List<String> currentDuplicate = Arrays.asList(element); // 创建当前的重复项列表
duplicates.add(currentDuplicate);
}
}
return duplicates;
}
}
```
这个算法的工作原理是,对于`tempResult`中的每个元素,如果它不是`seen`集合的新成员,则将其添加到当前的重复列表中,并将该元素从`seen`中移除,防止重复计数。最后,`findDuplicates`方法返回所有找到的重复元素列表。
阅读全文