java使用list去重的代码不许使用set
要使用List去重,可以遍历List,使用一个新的List来保存不重复的元素。下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class ListDuplicateRemover {
public static void main(String[] args) {
List<Integer> listWithDuplicates = new ArrayList<>();
listWithDuplicates.add(1);
listWithDuplicates.add(2);
listWithDuplicates.add(2);
listWithDuplicates.add(3);
listWithDuplicates.add(4);
listWithDuplicates.add(4);
listWithDuplicates.add(5);
List<Integer> listWithoutDuplicates = removeDuplicates(listWithDuplicates);
System.out.println("List with duplicates: " + listWithDuplicates);
System.out.println("List without duplicates: " + listWithoutDuplicates);
}
public static <T> List<T> removeDuplicates(List<T> list) {
List<T> newList = new ArrayList<>();
for (T element : list) {
if (!newList.contains(element)) {
newList.add(element);
}
}
return newList;
}
}
运行以上代码,输出结果为:
List with duplicates: [1, 2, 2, 3, 4, 4, 5]
List without duplicates: [1, 2, 3, 4, 5]
上述代码中,removeDuplicates方法接受一个List作为参数,创建一个新的List newList,然后遍历原始List,如果 newList 中不包含当前元素,则将其添加到 newList 中。最后返回不重复的List。
请注意,这种方法的时间复杂度为O(n^2),因为在每次判断是否包含元素时,需要遍历 newList。如果List中的元素较多,效率可能较低。对于较大的数据集,使用Set可能更加高效
原文地址: http://www.cveoy.top/t/topic/iXsT 著作权归作者所有。请勿转载和采集!