日期:2014-05-20 浏览次数:20884 次
import java.util.*;
public class RemoveDuplicate {
public static void main(String[] args) {
LinkedList<String> dL = new LinkedList<String>();
dL.add("N");
dL.add("AA");
dL.add("N");
dL.add("C");
dL.add("AA");
dL.add("N");
removeDuplicates(dL);
System.out.println(dL);
}
public static void removeDuplicates(LinkedList<String> dl) {
}
}
public static void RemoveDuplicates(LinkedList<String> dl) {
String s1, s2;
int count = 0;
while (count < dl.size()) {
Iterator<String> it1 = dl.iterator();
s2 = dl.get(count);
int i = 0;
for (s1 = it1.next(); it1.hasNext(); s1 = it1.next()) {
if (i != count && s2.equals(s1)) {
dl.set(count, s2.concat("toBeRemoved"));
}
i++;
}
count++;
}
Iterator<String> it1 = dl.iterator();
while (it1.hasNext()) {
if (it1.next().endsWith("toBeRemoved")) {
it1.remove();
it1 = dl.iterator();
}
}
}
------解决方案--------------------
没办法,不让排序很扯淡。Set就是利用了排序才快的。
------解决方案--------------------
自己写一个Hash表算了
老实说这个要求很无理
自己都用了List,还不给别人用Set
------解决方案--------------------
是的,即使使用二分查找算法,也得先排序
------解决方案--------------------
public static void removeDuplicates(LinkedList <String> dl) {
int len = dl.size();
for (int i = 0; i < len; i++) {