(全面披露:本作一些功课,我似乎是无法搞清楚。)重复分组从排序的ArrayList到另一个的ArrayList
任务:识别重复的列表,并将它们添加到另一个ArrayList被打印出来。
规格:我不被允许使用除ArrayList以外的任何集合,所以我不能使用类似Set的东西。看来StackOverflow上的每个答案都建议使用Set,这就是为什么我决定提出这个问题的原因。
我到目前为止已经尝试:
public static void deleteDuplicates(List<String> list)
{
int pointer = 1;
List<String> duplicates = new ArrayList<String>();
for (int i = 0; i < list.size() - 1; i++) {
if (list.get(i).equals(list.get(pointer))) {
duplicates.add(list.get(i));
if (pointer == 1) {
duplicates.add(list.get(pointer));
} else if ((pointer + 1) == list.size() - 1) {
duplicates.add(list.get(pointer));
}
pointer++;
} else {
display(duplicates);
duplicates = new ArrayList<String>();
pointer++;
}
}
}
测试数据:
List<String> duplicated = new ArrayList<String>();
duplicated.add("3");
duplicated.add("3");
duplicated.add("30");
duplicated.add("46");
duplicated.add("46");
什么是不工作:当列表的大小为奇数,重复报告正确。当列表大小为偶数时,只报告前两个副本。
你想重复的从原来的列表中移除或者只是添加重复的另一个列表。 –