Java去除数组中重复元素的两种实现

xiaoxiao2021-02-27  185

今日去面试,被问到要求手写一段代码,实现去除数组中重复的元素。我的第一反应是用 Set,因为 Set中的元素是不能重复的,但是大叔又说不让用 Set。明明感觉很简单的一个算法题,但是最后也没能写的让人满意。

于是回来总结了以下两种方法来实现:

1. 利用 List 的 contains() 方法:

package com.czq.text; import java.util.ArrayList; import java.util.List; public class RemoveSameNum2 { public static void main(String[] args) { int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 }; List<Integer> list = new ArrayList<Integer>(); for (int i : attr) { if (!list.contains(i)) {//boolean contains(Object o):如果列表包含指定的元素,则返回 true list.add(i); } } System.out.println(list); } }

2. 使用 Set 接口:

package com.czq.text; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class RemoveSameNum { public static void main(String[] args) { int[] attr = { 1, 2, 3, 3, 5, 5, 7, 9 }; List<Integer> list = new ArrayList<Integer>(); for (int i : attr) { list.add(i); } Set<Integer> set = new HashSet<Integer>(); set.addAll(list); System.out.println(set); } }

经过测试,以上两种方法均能正确输出:

[1, 2, 3, 5, 7, 9]

           

转载请注明原文地址: https://www.6miu.com/read-11610.html

最新回复(0)