文章目录
方法1:遍历List判断元素是否存在
public static void Deduplicate1(List<String> l1) {
//创建一个空List 存储结果
List<String> list = new ArrayList<>();
//遍历需要去重的List
for (String s : l1) {
//判断元素是否存在
//若不存在则添加进新List中
if (!list.contains(s)) {
list.add(s);
}
}
}
方法2:通过判断元素首次出现的下标与最后一次出现的下标是否一致进行重复判断
public static void Deduplicate2(List<String> l1) {
//复制一个新List 用于遍历
List<String> list = new ArrayList(l1);
//遍历临时List
for (String s : list) {
//如果当前元素首次出现的位置跟最后一次出现的位置不一致
//表示元素重复
//删除最后一次出现的元素
if (l1.indexOf(s) != l1.lastIndexOf(s)){
l1.remove(l1.lastIndexOf(s));
}
}
}
方法3:利用stream().distinct()方法去重
public static void Deduplicate3(List<String> l1) {
l1 = l1.stream().distinct().collect(Collectors.toList());
}
方法4:利用HashSet的不重复性去重
无法保证顺序
public static void Deduplicate4(List<String> l1) {
l1 = new ArrayList<>(new HashSet<>(l1));
System.out.println(l1); //[李四, 张三, 王五, 黄六]
}
方法5:利用LinkedHashSet的不重复性去重
可以保证顺序
public static void Deduplicate5(List<String> l1) {
//利用HashSet的不重复性去重
//可以保证顺序
l1 = new ArrayList<>(new LinkedHashSet<>(l1));
System.out.println(l1); //[张三, 李四, 王五, 黄六]
}