在面试中遇到一道这样面试题,怎样将集合排序,并去掉重复元素?排序后一时想不到,查阅资料后写下代码,下面代码值演示如何去重。
方案一:
// 通过最外层和最内层比较,去除重复元素
@Test
public void test() {
ArrayList<Object> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("1");
for(int i=0;i<list.size()-1;i++) {
for(int j=list.size()-1;j>i;j--) {
if(list.get(i).equals(list.get(j))) {
list.remove(j);
}
}
}
System.out.println(list);
}
//方式二
//先将数据存储到集合后,再将集合list存储到hashset中,
//再将hashset集合赋值给list
public static void main(String[] args) {
List<String> list= new ArrayList<String>();
list.add("1");
list.add("2");
list.add("1");
Set<String> s=new HashSet<>(list);
System.out.println(list);
list=new ArrayList<String>(s);
System.out.println(list);
}