您的位置:首页 > 职场人生

面试题:List去重,不可不知的五种方法

2017-11-18 22:03 309 查看
面试中经常被问到的list如何去重,一般是口述,不需要代码体现,这个时候,思维一定要清晰,可以罗列出集中去重的方法,以展现你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固

下面,我就将五种方法逐一展现

新建一个list数组:

List list = new ArrayList();

list.add(26);

list.add(39);

list.add(5);

list.add(40);

list.add(39);

list.add(25);

System.out.println(list);

方法一:使用java8新特性stream进行List去重

List newList = list.stream().distinct().collect(Collectors.toList());

System.out.println(“java8新特性stream去重:”+newList);

list.add(39);

方法二:双重for循环去重

for (int i = 0; i < list.size(); i++) {

for (int j = 0; j < list.size(); j++) {

if(i!=j&&list.get(i)==list.get(j)) {

list.remove(list.get(j));

}

}

}

System.out.println(“双重for循环去重:”+list);

list.add(39);

方法三:set集合判断去重,不打乱顺序

Set set1 = new HashSet();

List newList1 = new ArrayList();

for (Integer integer : list) {

if(set1.add(integer)) {

newList1.add(integer);

}

}

System.out.println(“set集合判断去重:”+list);

list.add(39);

方法四:遍历后判断赋给另一个list集合

List newList2 = new ArrayList();

for (Integer integer : list) {

if(!newList2.contains(integer)){

newList2.add(integer);

}

}

System.out.println(“赋值新list去重:”+newList2);

list.add(39);

方法五:set和list转换去重

Set set2 = new HashSet();

List newList3 = new ArrayList();

set2.addAll(list);

newList3.addAll(set2);

System.out.println(“set和list转换去重:”+newList3);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息