我们获得了实现可迭代接口的genericSackADT(下面的代码)的实现。
public interface GSackIterableADT<T> extends Iterable<T> {
void add(T item);
T remove() throws NoSuchElementException;
boolean isEmpty();
Iterator<T> iterator();
我们应该编写一个方法,可以接受它作为输入并删除所有重复项。
我想我需要一些概念性指导。我现在的计划是创建一个名为removeDuplicates的方法,该方法使用迭代器扫描ADT并在找到它们时删除重复项。我检查了迭代器API,我应该能够使用E next()和void remove()来做到这一点,对吗?但是,我的代码现在很乱,我不知道到底要去哪里......
public static <E> int removeDuplicates (match) {
int counter = 0;
ListIterator<E> iter = myList.listiterator();
while (iter.hasNext());
E val = iter.next();
//the goal in the next step is to remove duplicates as the iterator finds them
if (val.equals(match){
void remove()
答案 0 :(得分:0)
删除重复项的一种简单方法是将您的收藏集添加到#include <iostream>
int main()
{
for( int N=1 ; N<=100 ; ++N ) {
int sum = 0;
for (int i = 0; i*i*i < N; i++)
for (int j = 0; j*j*j < N; j++)
for (int k = 0; k*k*k < N; k++)
sum++;
std::cout << "For N=" << N << ", sum=" << sum << '\n';
}
return 0;
}
,然后将其转换回Set
。 Java List
实现将在Set
操作期间自动删除重复项。我假设您的实现是使用示例代码中的add()
。
List