List去重的5种方式
- 借助Set的特性进行去重
- 利用set集合特性保持顺序一致去重
- 遍历List集合,将元素添加到另一个List集合中
- 使用Java8特性去重
- 双重循环使用list自身方法remove()
借助Set的特性进行去重
/**
* Set 去重
*/
@Test
public void setDistinct() {
Set set = new HashSet();
List newList = new ArrayList();
set.addAll(list);
newList.addAll(set);
System.out.println(newList);
}
利用set集合特性保持顺序一致去重
/**
* Set 去重保持原序
*/
@Test
public void setDistinctHasSort() {
//方法一
List<integer> listNew = new ArrayList<integer>(new TreeSet<integer>(list));/<integer>/<integer>/<integer>
//方法二
List<integer> listNew2 = new ArrayList<integer>(new LinkedHashSet<integer>(list));/<integer>/<integer>/<integer>
}
遍历List集合,将元素添加到另一个List集合中
/**
* 添加到其他List
*/
@Test
public void add2OtherList(){
List<integer> newList = new ArrayList<integer>();/<integer>/<integer>
for (Integer str : list) {
if (!newList.contains(str)) {
newList.add(str);
}
}
System.out.println();
}
使用Java8特性去重
@Test
public void java8Feature()
{
List<integer> newList =list.stream().distinct().collect(Collectors.toList());/<integer>
System.out.println(newList );
}
双重循环使用list自身方法remove()-不推荐
/**
* 循环去重
*/
@Test
public void loopRemove(){
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(list);
}
閱讀更多 新猿易碼 的文章