入门题目很简单,下面是我写的代码,通过新建一个list,再使用了list的contains方法去循环检测是否在新list中存在,不存在则添加存在则不添加.
import java.util.Iterator;
import java.util.LinkedList;
import java.util.*;
class Solution {
public static LinkedList<String> Weighting(LinkedList<String> list) {
// write your code here
ArrayList<String> backList = new ArrayList<String>(list.size()); //新建一个list
for (String str : list) { //循环list中的元素
if (!backList.contains(str)) { //利用contains元素去比较在新的backlist中是否存在该元素,不存在就添加
backList.add(str);
}
}
list.clear(); //清空list内元素
list.addAll(backList); //将backList内容全部添加进list中
return list;
}
}
下面这个是题解答案,一行代码,果然被多人认可的还是精髓,真够简洁的,使用了LinkedHashSet
解释:LinkedHashSet是 HashSet的子类 LinkedHashSet根据元素的hashCode值来决定元素的存储位置,但它同时使用双向链表维护元素的次序,这使得元素看起来是以插入顺序保存的, LinkedHashSet插入性能略低于 HashSet,但在迭代访问Set里的全部元素时有很好的性能,LinkedHashSet不允许集合元素重复.
通过